在准备好的语句中准备失败
Failed prepare in a prepared statement
我正在尝试从上一页获取用户 ID 并将信息输出到另一页,但在我准备好的语句中,语句的准备部分出现错误。我没有得到的是我在另一个网站上有这个几乎完全相同的代码并且它工作得很好。我很困惑,我查看了数据库中的所有名称,一切都是正确的。
这是我遇到的错误:
prepare() 失败:您的 SQL 语法有误;查看与您的 MySQL 服务器版本相对应的手册,了解在第 1
行 'group FROM users WHERE id = ?' 附近使用的正确语法
提到的是这一行...
$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 关键字,所以这就是搞乱您的查询的原因。始终对您的列名称执行此操作是一种很好的做法。
我正在尝试从上一页获取用户 ID 并将信息输出到另一页,但在我准备好的语句中,语句的准备部分出现错误。我没有得到的是我在另一个网站上有这个几乎完全相同的代码并且它工作得很好。我很困惑,我查看了数据库中的所有名称,一切都是正确的。
这是我遇到的错误:
prepare() 失败:您的 SQL 语法有误;查看与您的 MySQL 服务器版本相对应的手册,了解在第 1
行 'group FROM users WHERE id = ?' 附近使用的正确语法提到的是这一行...
$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 关键字,所以这就是搞乱您的查询的原因。始终对您的列名称执行此操作是一种很好的做法。