2

此调用失败并出现错误:

mysqli_report(MYSQLI_REPORT_ALL);
$stmt = $mysqli->prepare("INSERT INTO check VALUES (?,?,?,?,?,?)");

我得到的错误:

未捕获的异常 'mysqli_sql_exception' 并带有消息“您的 SQL 语法有错误;检查与您的 MySQL 服务器版本相对应的手册,以在第 1 行的“检查值(?,?,?,?,?,?)”附近使用正确的语法

  1. 我有一个名为“check”的表,其中包含适量的字段
  2. 如果我将表名更改为checkSomething它可以工作...

任何想法 ?

4

2 回答 2

2

check是保留关键字。要将其用作表名,您必须使用如下反引号对其进行转义`check`

$stmt = $mysqli->prepare("INSERT INTO `check` VALUES (?,?,?,?,?,?)");
于 2013-11-06T23:33:33.970 回答
2

Check 是 MySQL 中的保留字。您需要将其用反引号括起来,如下所示:

$mysqli->prepare("INSERT INTO `check` VALUES (?,?,?,?,?,?)");

或者更好的是,将其重命名为您不需要经常使用特殊情况的名称。

$mysqli->prepare("INSERT INTO checks VALUES (?,?,?,?,?,?)");
于 2013-11-06T23:36:03.303 回答