php mysql查询问题

时间:2011-08-08 17:36:19

标签: php mysql

我的餐桌预订由以下字段组成:小时,分钟,日,月,名称,表格,数字

当我按如下方式执行查询时:

$query = "select * from reservation";

$result = $db->query($query);
$row = $result->fetch_assoc();

效果很好。

但是当我将查询更改为

$query = "select * from reservation where table like '%1%'";

我在apache日志中得到一个空白结果和以下错误:

  

2011年8月8日星期一20:17:19] [错误] [client :: 1] PHP致命错误:在/srv/http/reservation.php上的非对象上调用成员函数fetch_assoc() 43,引用者:http://localhost/

如果我将其更改为以下内容:

  $query = "select * from reservation where 'table'=1";

结果是0。 (表是INT)

第二个问题是,我使用的是最新语法吗?我见过大多数人都使用mysql_query()。

4 个答案:

答案 0 :(得分:3)

table是保留字。最好不要使用它,但查询的正确语法是使用后引号(`):

 $query = "select * from reservation where `table` = 1";

答案 1 :(得分:1)

table是MySQL保留字。如果你想在查询中使用它作为列名,你需要把它放在反引号中(不像你那样用单引号):

$query = "select * from reservation where `table`=1";

答案 2 :(得分:0)

do a $db->query($query) or die(mysql_error());
由于SQL错误,

$result可能 false。

我假设你不能在int字段上做(从未尝试过),这应该让你知道为什么 MySQL 拒绝你的陈述。< / p>

答案 3 :(得分:0)

要回答您的第二个问题,您的代码比使用mysql_query的其他人更新。你似乎在使用mysqli,这是一件好事。 mysql_query等。已经过时多年,不建议用于任何新项目。