当表名是 "check"时,PHP $mysqli->prepare 出现奇怪语法错误

标签 php sql mysqli prepared-statement

此调用失败并出现错误:

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

我得到的错误:

Uncaught exception 'mysqli_sql_exception' with message 'You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'check VALUES (?,?,?,?,?,?)' at line 1'

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

有什么想法吗?

最佳答案

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

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

关于当表名是 "check"时,PHP $mysqli->prepare 出现奇怪语法错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19825096/

相关文章:

php - 为什么 mysqli num_rows 总是返回 0?

php - 似乎无法连接到mysql、localhost?

php - 当我尝试通过 PHP 创建数据库并设置用户权限时,MySQL 语法错误

php - 如何编辑动态创建的文本框值并将其插入到 MySQL DB?

sql - 在 PostgreSQL 中将列数据转换为行

PHP MySQLi 准备好的语句选择在特定时间添加到记录中的行

php - 读取路由函数中的 Blade 变量

mysql - 如何创建显示过去 4 个季度数据的 View ?

c# - 用逻辑计算列id

php - mysqli参数错误-数据库连接工作正常吗?