我正在尝试从上一页获取用户ID,并将信息输出到另一页上,在我准备好的语句中,我在语句的prepare部分遇到错误。我没有得到的是,我在另一个网站上拥有与此几乎完全相同的代码,并且可以正常运行。我很困惑,我已经查看了数据库中的所有名称,并且一切正确。
这是我得到的错误:
prepare()失败:您的SQL语法有错误;检查与您的MySQL服务器版本相对应的手册以获取正确的语法,以在“ group FROM users WHERE id =?”附近使用 在第1行
提到的那条线是这个...
$stmt = $con->prepare("SELECT fullname, email, username, group FROM users WHERE id = ?");
这是准备充分的陈述。
<?php
$con = mysqli_connect("localhost","root","","db");
/* check connection */
if (mysqli_connect_errno()) {
printf("Connect failed: %s\n", mysqli_connect_error());
exit();
}
$stmt = $con->prepare("SELECT fullname, email, username, group FROM users WHERE id = ?");
if ( false===$stmt ) {
// Check Errors for prepare
die('prepare() failed: ' . htmlspecialchars($con->error));
}
$stmt->bind_param("i", $_GET['id']);
if ( false===$stmt ) {
// Check errors for binding parameters
die('bind_param() failed: ' . htmlspecialchars($stmt->error));
}
$stmt->execute();
if ( false===$stmt ) {
die('execute() failed: ' . htmlspecialchars($stmt->error));
}
//Check errors for execute
//if(!$stmt->execute()){trigger_error("there was an error....".$con->error, E_USER_WARNING);}
$stmt->bind_result($fullname, $email, $username, $group);
$stmt->store_result();
if ($stmt->fetch()) { ?>
我是否缺少一些非常明显的东西,或者可能是什么原因造成的?
在组周围加上反引号(重音符号)或引号(或撇号),使其看起来像此“组”。这是一个MySQL关键字,这就是使查询混乱的原因。最好始终对列名进行操作。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句