Can';t使用PHP将数据插入MySQL

Can';t使用PHP将数据插入MySQL,php,mysql,mysqli,Php,Mysql,Mysqli,我一直试图通过PHP代码将表单数据传输到数据库,但它不起作用,我已经无数次地查看代码,寻找可能的错误,但作为初学者,我找不到。表单将实际提交,但没有任何内容进入数据库 任何快速的帮助都将不胜感激。代码如下: $conn = @mysqli_connect('localhost', 'root', 'aboki'); if (mysqli_connect_error()) { die('Connect Error: ' . mysqli_connect_error()); } $qry = "

我一直试图通过PHP代码将表单数据传输到数据库,但它不起作用,我已经无数次地查看代码,寻找可能的错误,但作为初学者,我找不到。表单将实际提交,但没有任何内容进入数据库

任何快速的帮助都将不胜感激。代码如下:

$conn = @mysqli_connect('localhost', 'root', 'aboki'); 
if (mysqli_connect_error()) {
die('Connect Error: ' . mysqli_connect_error());
}

$qry = "INSERT INTO users (email, firstName, surname, userName, password, birthday) values ($email, $firstName, $surname, $userName, $password, $userDOB)";
$result = mysqli_query($conn, $qry); 
例如:

$stmt = mysqli_prepare($conn, "SELECT District FROM City WHERE Name=?")) {
$stmt->bind_param("s", $city);
$stmt->execute();
试试这个

$qry = "INSERT INTO users (email, firstName, surname, userName, password, birthday) 
values ('$email', '$firstName', '$surname', '$userName', '$password', '$userDOB')";

首先,你没有引用这些值,这就是为什么它没有插入

这将修复它(但我强烈建议您不要使用此方法!)

$qry = "INSERT INTO users (email, firstName, surname, userName, password, birthday) values ('$email', '$firstName', '$surname', '$userName', '$password', '$userDOB')";
正确的方法 您最好充分利用
mysqli
提供的预定义函数,并将这些参数绑定到一个预先准备好的语句中,如下所示:

mysqli_prepare($conn,"INSERT INTO users (email, firstName, surname, userName, password, birthday) values (?, ?, ?, ?, ?, ?)");

mysqli_stmt_bind_param($conn, 'TYPES_HERE',$email, $firstName, $surname, $userName, $password, $birthday)

我有数据插入的解决方案,你可以试试

$conn= mysqli_connect("localhost", "root", "my_password", "world");
if (mysqli_connect_errno()) {
printf("Connect failed: %s\n", mysqli_connect_error());
exit();
}
$query = "INSERT INTO users 
(email, firstName, surname, userName, password, birthday) VALUES
($email, $firstName, $surname, $userName, $password, $userDOB)";
 mysqli_query($conn, $query);
 printf ("New Record has id %d.\n", mysqli_insert_id($link));
 mysqli_close($link);
由于您在查询中使用了mysqli,因此语法非常不同

请随时提出进一步的问题


谢谢

如果要使用mysqli,请使用参数化,它将正确引用和转义所有变量。你没有引用值,这就是为什么它没有插入。你能给我们看更多的代码吗?需要查看从何处获取值等。
mysqli->query()
返回了什么?您是否尝试过将
放在大写字母中?首先删除
@
,因为它会抑制错误。不适合使用抑制,例如@mysqi。。。远程引用是不够的。它们至少也必须被转义。你为什么不自己使用mysqli编写的语句呢?你确定你的密码是安全的吗?@你的常识我自己用事先准备好的语句!但是,我使用的是PDO而不是MySQLi,因此我的语法可能不正确。上面的代码仅仅是OP应该致力于做什么的一个例子。第一个解决办法就是简单地解决问题,不管你和我多么不同意使用这种方法……这不是关于“分歧”。这是关于工作代码的。至少添加execute()。而“s”行更适合复制-paste@YourCommonSense我同意:-)我打赌这个答案因为“懒惰”而被大量否决。如果您不能或不想编写文本解释,至少要编写一个与所讨论的查询相关的代码,而不仅仅是抽象示例。