【问题标题】:MySQL only returns { first row } from the result of query ! [closed]MySQL 只从查询结果中返回 { first row } ! [关闭]
【发布时间】:2010-06-29 20:48:39
【问题描述】:

我很久以前就使用我的服务器来测试 PHP 和 MySQL 应用程序。

突然,当我尝试对任何数据库中的任何表执行任何查询时,我只得到查询结果中的第一行!

我检查了配置文件,并没有发现任何奇怪的地方。

操作系统:Linux / Ubuntu 10.04 64位服务器版, 网络服务器:Apache/2.2.14, MySQL 客户端:5.1.41, MySQL 服务器:5.1.41-3ubuntu12.3 (Ubuntu)

而且,我确定我的 PHP 代码没有错误,而 当我使用 phpMyAdmin 时,我可以正常获取所有行!

问题应该出在哪里?

【问题讨论】:

  • 还是要给我们看代码吗?以防万一?
  • +1,请代码,mysql_num_rows() 返回什么?
  • >>而且,我确信我的 PHP 代码没有错误,而当我使用 phpMyAdmin 时,我可以正常获取所有行!。我喜欢这条线
  • 投票结束不是一个真正的问题。如果您确定您的 PHP 代码没有问题,那么没有理由将问题发布到人们解决代码问题的网站。

标签: php mysql apache ubuntu


【解决方案1】:

如果您发布代码会有所帮助,但我猜您的代码没有获取每一行的循环。

<?php

$Result = mysql_query( $Query );

while( $Row = mysql_fetch_assoc( $Result ) ) //keep going while there are more rows
{
    print_r( $Row );
}

mysql_fetch_accoc 和 mysql_fetch_array 函数一次只返回一行(连续),因此您需要为每一行运行它们。

【讨论】:

  • +1 我输入了类似的答案。这是我的第一个猜测,没有看到代码。
  • .. 当 fetch 返回所有行时,while 循环会结束吗?我的意思是……如果 mysql_num_rows($result) 返回 4,while 循环会运行 4 次还是无限次?
  • mysql_fetch_accoc 将在没有更多行时返回 FALSE。所以循环将继续进行,直到它读取了 4 行(在这种情况下),然后结束。 php.net/manual/en/function.mysql-fetch-assoc.php
【解决方案2】:

问题你的代码。您刚刚告诉我们 phpMyAdmin 从 MySql 返回正常,所以很明显 MySql 服务器不是问题,PHP 服务器设置的任何部分也不是。

您的代码有误,您可能(在您的超级机密和完美代码中)在您的状态中有一个限制 1,或者因为您不知道 mysql_fetch 函数的工作原理而错误地抓取了行。

给我投反对票,因为我是一个刻薄的混蛋,但无论如何。

【讨论】:

    猜你喜欢
    • 2019-08-08
    • 1970-01-01
    • 2013-08-24
    • 2015-02-26
    • 2015-01-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多