在mysqli_query中使用Grave重音而不是''

时间:2013-08-09 23:45:54

标签: mysql

我有问题,我在google上找了它,找不到它。

$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 个答案:

答案 0 :(得分:4)

update是MySQL中的保留字。

你应该总是使用反引号

`

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

List of Reserved Words

答案 1 :(得分:2)

那些不是“严重的口音”(口音高于字母);他们是反叛

你应该用反引号包围字段名称,以显示它们是字段名称而不是函数,运算符,命令等。

你通常可以在没有这样做的情况下离开(似乎你已经习惯了它!),但是如果您的名字实际上是MySQL保留的关键字 - 例如, UPDATE - 你做不到。

答案 2 :(得分:1)

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

if (!($result = mysqli_query($link, $query))) {
    die('MySQLi error: ' . mysqli_error($link));
}

答案 3 :(得分:0)

我不是SQL专家,但update是SQL主动寻找的特殊词。因此,在名为update的表中选择内容,需要在引号中进行更新。