我有一个非常奇怪的问题。
有一个 PHP 文件,如果我在行名称中使用 `
,我只能
插入MySQL 表,但在其他 PHP 上,它不需要它并且插入到同一个表中工作得很好。
对于example1.php,如果我不使用
`
,那么它会失败而不返回任何错误。
例如example1.php:
mysqli_query($conn, 'INSERT INTO table_name (`one`, `two`, `three`) VALUES ("one", "two", "three")');
会起作用,但是
mysqli_query($conn, 'INSERT INTO table_name (one, two, three) VALUES ("one", "two", "three")');
不会,但是......对于example2.php,example3.php,example4.php和etc,
mysqli_query($conn, 'INSERT INTO table_name (one, two, three) VALUES ("one", "two", "three")');
工作得很好,当我不使用
mysqli_error($conn)
.时,我在example1.php上回显
`
没有错误
我知道这不是什么大问题,但不知道为什么让我发疯?
我认为这与 MySQL 中的保留关键字有关——像
"one"
和 "two"
这样的词在 MySQL 查询语言中有特殊的含义——当你将关键字括在反引号 (`) 中时——它可以告诉MySQL,您将它们称为列名而不是保留关键字。
另一种可能性是您要插入的表的列名是保留关键字——将列名括在反引号中以避免错误
更新 是否有可能不同的 PHP 文件连接到不同的数据库/表?或者他们使用不同版本的 MySQL 驱动程序? -- 这可以解释您看到的不同行为 -- 检查连接设置,确保所有 PHP 文件都连接到同一个数据库和表