Mysql结果和php结果不一样么?

时间:2012-01-10 02:41:50

标签: php sql

  

可能重复:
  MySQL returns only one row

在终端

mysql> select image,title,price from test;

db result:

image title price
 1       2     3
 4       5     6

但是,在PHP中

.
.
$query=mysql_query("select image,title, price from test",$connect);

$row=mysql_fetch_object($query);

print json_encode($row);

结果:

image= 1, title = 2  , price=3

为什么不打印图片= 4 title = 5 price = 6? 如何?

5 个答案:

答案 0 :(得分:3)

因为您只打印第一个$行

你需要一个循环:

while ($row = mysql_fetch_object($result)) {
   ...
}

答案 1 :(得分:3)

如果查看mysql_fetch_object()的PHP文档,其目的是“将 a 结果行作为对象获取”。你必须继续打电话,直到没有更多的行:

$result = mysql_query("select image,title, price from test", $connect);
while ($row=mysql_fetch_object($result)) {
    print json_encode($row);
}
mysql_free_result($result);

另请注意,我将mysql_query()的返回值重命名为$result,因为这更加正确。

答案 2 :(得分:1)

尝试将查询放入while循环中:

while($row = mysql_fetch_object($query ))
{
print json_encode($row);
}

答案 3 :(得分:1)

mysql_fetch_object只获取一行。你需要循环遍历它们,直到没有更多的行,如下所示:

while (($row = mysql_fetch_object($query)) !== false) {
    // do stuff
}

答案 4 :(得分:1)

mysql_fetch_object方法仅返回结果集的第一行。您应该遍历结果集以获取所有行。