PHP 在 MySQL 数据库中提交错误信息 (PHP+MySQL)
PHP Submitting wrong information on a MySQL database (PHP+MySQL)
我一直遇到这个奇怪的错误,基本上发生的事情是我在 Android 上安装了这个应用程序,每当我尝试添加一个新的 "user" 它的值之一(称为 "Contacto") 有时是错误的,奇怪的是它以完全随机的方式发生,这是我的 .php
<?PHP
$con=mysqli_connect("localhost","root","","proyecto");
// Check connection
if (mysqli_connect_errno())
{
echo "Failed to connect to MySQL: " . mysqli_connect_error();
}
if(isset($_POST['txtNombre']) && isset($_POST['txtcontactousuarionuevo']) &&
isset($_POST['txtPass']) && isset($_POST['txtprograma'])){
$nombreestudiante = $_POST['txtNombre'];
$contactoestudiante = $_POST['txtcontactousuarionuevo'];
$passestudiante = $_POST['txtPass'];
$programa = $_POST['txtprograma'];
$query = "INSERT INTO estudiante(Nombre, Contacto, Id_Periodo_FK, Pass)
VALUES ('$nombreestudiante', $contactoestudiante, 4, '$passestudiante');";
$query .= "INSERT INTO estudiante_programa(EstudianteE_P_FK, ProgramaE_P_FK)
VALUES(LAST_INSERT_ID(), $programa)";
$result =mysqli_multi_query($con,$query);
if($result > 0){
if(isset($_POST['mobile']) && $_POST['mobile'] == "android"){
echo "success";
exit;
}
echo "Insert Successfully";
}
else{
if(isset($_POST['mobile']) && $_POST['mobile'] == "android"){
echo "failed";
exit;
}
echo "Something Error";
}
}
?>
<html>
<head><title>Insert | ProyectoBD</title></head>
<body>
<h1>Insert ProyectoBD| <a>Santiago Troitiño C - 201421697</a></h1>
<form action="<?PHP $_PHP_SELF ?>" method="post">
Nombre <input type="text" name="txtNombre" value=""/><br/>
Contacto <input type="text" name="txtcontactousuarionuevo" value=""/><br/>
Pass <input type="text" name="txtPass" value=""/><br/>
<input type="submit" name="btnSubmit" value="Insert"/>
</form>
</body>
我的应用程序有一个登录屏幕和一个将其带到注册表单的按钮,在该页面(登录页面)上执行的 .php 如下所示:
<?PHP
include_once("connection.php");
if(isset($_POST['txtUsername']) && isset($_POST['txtPassword'])){
$username = $_POST['txtUsername'];
$password = $_POST['txtPassword'];
$query = "SELECT * FROM estudiante WHERE Nombre = '$username'
AND Pass = '$password'";
$result = mysqli_query($conn, $query);
if($result->num_rows > 0){ //has record. correct username and password
echo "success";
while($row = $result->fetch_assoc()) {
echo " ". $row["Id_Estudiante"]. "";
exit;
}
exit;
}
else{
echo "Wrong username and password";
exit;
}
exit;
}
?>
<html>
<head><title>Login | ProyectoBD</title></head>
<body>
<h1>Login ProyectoBD | <a>Santiago Troitiño C - 201421697</a></h1>
<form action="<?PHP $_PHP_SELF ?>" method="post">
Nombre <input type="text" name="txtUsername" value="" placeholder="Ingresar Nombre" /><br/>
Password <input type="password" name="txtPassword" value="" placeholder="Ingresar Pass" /><br/>
<input type="submit" name="btnSubmit" value="Login"/>
</form>
</body>
</html>
这些是应用程序这部分唯一执行的。php...正如您在这张图片上看到的那样,数字“2147483647”一直在完全随机的时间出现,
我用那个号码注册了一次,但一直出现
关于如何解决这个问题的任何想法?谢谢!
你的数据库中Contacto的数据类型是什么?当您包含非数字字符时,问题是否会出现?例如,如果您在数据库中将 phone 数字的数据类型作为数字类型(BIGINT、INT),并且您的用户尝试输入 VARCHAR 字符,如连字符,即“111-111-1111”,它可能会导致数据库将条目保存为数据类型可以容纳的最大数字。如果使用非数字字符时出现此问题,请将 Contacto 的数据类型更改为 VARCHAR。
我一直遇到这个奇怪的错误,基本上发生的事情是我在 Android 上安装了这个应用程序,每当我尝试添加一个新的 "user" 它的值之一(称为 "Contacto") 有时是错误的,奇怪的是它以完全随机的方式发生,这是我的 .php
<?PHP
$con=mysqli_connect("localhost","root","","proyecto");
// Check connection
if (mysqli_connect_errno())
{
echo "Failed to connect to MySQL: " . mysqli_connect_error();
}
if(isset($_POST['txtNombre']) && isset($_POST['txtcontactousuarionuevo']) &&
isset($_POST['txtPass']) && isset($_POST['txtprograma'])){
$nombreestudiante = $_POST['txtNombre'];
$contactoestudiante = $_POST['txtcontactousuarionuevo'];
$passestudiante = $_POST['txtPass'];
$programa = $_POST['txtprograma'];
$query = "INSERT INTO estudiante(Nombre, Contacto, Id_Periodo_FK, Pass)
VALUES ('$nombreestudiante', $contactoestudiante, 4, '$passestudiante');";
$query .= "INSERT INTO estudiante_programa(EstudianteE_P_FK, ProgramaE_P_FK)
VALUES(LAST_INSERT_ID(), $programa)";
$result =mysqli_multi_query($con,$query);
if($result > 0){
if(isset($_POST['mobile']) && $_POST['mobile'] == "android"){
echo "success";
exit;
}
echo "Insert Successfully";
}
else{
if(isset($_POST['mobile']) && $_POST['mobile'] == "android"){
echo "failed";
exit;
}
echo "Something Error";
}
}
?>
<html>
<head><title>Insert | ProyectoBD</title></head>
<body>
<h1>Insert ProyectoBD| <a>Santiago Troitiño C - 201421697</a></h1>
<form action="<?PHP $_PHP_SELF ?>" method="post">
Nombre <input type="text" name="txtNombre" value=""/><br/>
Contacto <input type="text" name="txtcontactousuarionuevo" value=""/><br/>
Pass <input type="text" name="txtPass" value=""/><br/>
<input type="submit" name="btnSubmit" value="Insert"/>
</form>
</body>
我的应用程序有一个登录屏幕和一个将其带到注册表单的按钮,在该页面(登录页面)上执行的 .php 如下所示:
<?PHP
include_once("connection.php");
if(isset($_POST['txtUsername']) && isset($_POST['txtPassword'])){
$username = $_POST['txtUsername'];
$password = $_POST['txtPassword'];
$query = "SELECT * FROM estudiante WHERE Nombre = '$username'
AND Pass = '$password'";
$result = mysqli_query($conn, $query);
if($result->num_rows > 0){ //has record. correct username and password
echo "success";
while($row = $result->fetch_assoc()) {
echo " ". $row["Id_Estudiante"]. "";
exit;
}
exit;
}
else{
echo "Wrong username and password";
exit;
}
exit;
}
?>
<html>
<head><title>Login | ProyectoBD</title></head>
<body>
<h1>Login ProyectoBD | <a>Santiago Troitiño C - 201421697</a></h1>
<form action="<?PHP $_PHP_SELF ?>" method="post">
Nombre <input type="text" name="txtUsername" value="" placeholder="Ingresar Nombre" /><br/>
Password <input type="password" name="txtPassword" value="" placeholder="Ingresar Pass" /><br/>
<input type="submit" name="btnSubmit" value="Login"/>
</form>
</body>
</html>
这些是应用程序这部分唯一执行的。php...正如您在这张图片上看到的那样,数字“2147483647”一直在完全随机的时间出现, 我用那个号码注册了一次,但一直出现
关于如何解决这个问题的任何想法?谢谢!
你的数据库中Contacto的数据类型是什么?当您包含非数字字符时,问题是否会出现?例如,如果您在数据库中将 phone 数字的数据类型作为数字类型(BIGINT、INT),并且您的用户尝试输入 VARCHAR 字符,如连字符,即“111-111-1111”,它可能会导致数据库将条目保存为数据类型可以容纳的最大数字。如果使用非数字字符时出现此问题,请将 Contacto 的数据类型更改为 VARCHAR。