0

我有问题,我在谷歌上找过,没找到。

$result = mysqli_query($link,"SELECT * FROM  update ");

错误

Warning: mysqli_fetch_array() expects parameter 1 to be mysqli_result, boolean given in

当我将查询更改为:

$result = mysqli_query($link,"SELECT * FROM  `update` ");

有用。这是为什么?

4

4 回答 4

4

update是 MySQL 中的保留字。

你应该总是使用反引号

`

`table``column`名称中避免这样的错误。

保留字列表

于 2013-08-09T23:48:30.590 回答
3

这些不是“重音”(重音高于字母);他们是反引号

您应该用反引号将字段名称括起来,以表明它们是字段名称而不是函数、运算符、命令等。

你通常可以不这样做(看起来你已经习惯了!),但如果你的名字实际上是 MySQL 保留关键字——例如UPDATE——你不能。

于 2013-08-10T00:08:44.743 回答
1

UPDATE 是 MySQL 的关键字,因此它会导致错误(mysql 很困惑,因为您在 select 中开始更新)。基本上它建议将数据库、表和列名放在 `` 之间以避免这种情况,您还应该检查mysqli_query返回的内容,在这种情况下,您得到的是对象false而不是mysqli_result对象,您可以阅读错误消息(可能不多说比'你有一个错误附近......检查你的查询语法',但无论如何你会知道有什么问题;)):

if (!($result = mysqli_query($link, $query))) {
    die('MySQLi error: ' . mysqli_error($link));
}
于 2013-08-09T23:52:20.717 回答
0

我不是 SQL 专家,但update它是 SQL 积极寻找的一个特殊词。因此,在名为 update 的表中选择的东西,您需要在引号中进行更新。

于 2013-08-09T23:48:38.277 回答