首页 > 解决方案 > MySQL 语法错误:您的 SQL 语法有错误

问题描述

我正在将网站从使用 MySQL 5.6 的服务器移动到运行 MySQL 8 的服务器。

当我使用以下 PHP 代码(在运行 MySQL 5.6 的服务器上运行良好)时,我收到以下错误消息:“

您的 SQL 语法有错误;检查与您的 MySQL 服务器版本相对应的手册,以获取在“othersomething =?”附近使用的正确语法 在第 1 行。

$sql = "
SELECT * 
  FROM table 
 WHERE something = ? 
   AND othersomething = ? 
 ORDER 
    BY action DESC
";
$stmt = mysqli_stmt_init($conn);
if (!mysqli_stmt_prepare($stmt, $sql)) {
  echo "Error:\n";
      print_r($stmt->error_list);
}else {
  $something = 1;
  $othersomething = 2;
  mysqli_stmt_bind_param($stmt, "ss", $something, $othersomething);
  mysqli_stmt_execute($stmt);

  $result = mysqli_stmt_get_result($stmt);
$final_data = array();
  if (mysqli_num_rows($result) > 0) {
    while ($row = mysqli_fetch_assoc($result)) {
          $final_data[] = $row;
    }
  }
}

我不确定是什么导致了问题。

一组类似的代码执行得很好。

参数/变量不为空/null。

标签: phpmysqlmysqli

解决方案


推荐阅读