0

很长时间以来,我一直想弄清楚哪里出了问题,但我无法弄清楚。我一直在尝试连接到本地 MySQL 数据库。当我运行它时,不会引发任何错误。另外,我知道数据库和表存在,并且我知道我的用户名和密码是正确的。

<?php 
// Connects to your Database 
$con = mysqli_connect("localhost", "**MY_USERNAME**", "**MY_PASSWORD**", "gamesite_data") or die(mysql_error()); 
$username = $_POST["username"];
$password = $_POST["password"];
$first_name = $_POST["first_name"];
$last_name = $_POST["last_name"];
$age = $_POST["age"];

mysqli_query($con, "INSERT INTO information (`username`, `password`, `first_name`, `last_name`, `age`) VALUES ($username, $password, $firstname, $last_name, $age);"
);
?> 
<?php
mysqli_close($con)
?>
4

4 回答 4

0

这里:

mysqli_query($con, "INSERT INTO information (`username`, `password`, `first_name`, `last_name`, `age`) VALUES ($username, $password, $firstname, $last_name, $age);"
);

应该

mysqli_query($con, "INSERT INTO information (`username`, `password`, `first_name`, `last_name`, `age`) VALUES ($username, $password, $first_name, $last_name, $age);"
);

你没有$firstname变量,你有$first_name

还要记住,您需要mysqli_real_escape_string()用于所有$_POST值。

我认为将变量作为字符串传递给查询是一个好习惯:

"INSERT INTO information (`username`, `password`, `first_name`, `last_name`, `age`) VALUES ('$username', '$password', '$first_name', '$last_name', '$age');"
于 2013-04-08T21:55:56.277 回答
0

我注意到你的代码在这里你犯了两个错误,第一个是你在你的 sql 查询中使用了错误的变量名。你声明了 $first_name 变量,但是你使用了 $firstname,第二个你在你的值结束后使用了额外的分号 (;) .

请使用此代码

<?php
$con = mysqli_connect("localhost", "root", "", "gamesite_data");
if (mysqli_connect_errno()) {
printf("Connect failed: %s\n", mysqli_connect_error());
exit();
}
$username = $_POST["username"];
$password = $_POST["password"];
$first_name = $_POST["first_name"];
$last_name = $_POST["last_name"];
$age = $_POST["age"];
$query = "INSERT INTO information (`username`, `password`, `first_name`, `last_name`,  `age`) VALUES ($username, $password, $first_name, $last_name, $age)";
$result = mysqli_query($con, $query);
?>   

希望它的工作

于 2013-04-08T21:58:21.163 回答
0

如果 username、password、first_name、last_name 的值是字符串,则必须在此处用单引号将它们括起来:

mysqli_query($con, "INSERT INTO information (`username`, `password`, `first_name`, `last_name`, `age`) VALUES ('".$username."', '".$password."', '".$firstname."', '".$last_name."', ".$age.")");

如果你使用mysqli_connect,你必须使用也mysqli_error代替mysql_error

于 2013-04-08T21:18:38.353 回答
0

尝试这个

   <?php 
 // Connects to your Database 
 $con = new mysqli("localhost", "**MY_USERNAME**", "**MY_PASSWORD**", "gamesite_data") or die(mysql_error()); 
 $username = $_POST["username"];
 $password = $_POST["password"];
 $first_name = $_POST["first_name"];
 $last_name = $_POST["last_name"];
 $age = $_POST["age"];

 $query="INSERT INTO information (`username`, `password`, `first_name`, `last_name`, `age`) VALUES ('$username', '$password', '$firstname', '$last_name', '$age')";
 $con->query($query);
 $con->close();
 ?>
于 2013-04-08T21:31:50.390 回答