如果我检索所有行,则mysql获取结果为空

时间:2011-09-14 21:15:15

标签: php mysql

我在使用php + mysql从服务器返回值时遇到了一些问题。

这是我的代码

    $result = mysql_query("SELECT * FROM Nicknames", $con);

    if (mysql_real_escape_string($_POST['Create']) == "NICKNAME") {
        $output;        
        while ($row = mysql_fetch_assoc($result)) {
            if ($row['Taken'] == '0')  $output = $output . $row['Nickname'] . ",";
        }
        echo substr($output, 0, -1);

    }   

如果我加上休息;在while循环中,它完美地工作,我只得到我的一行表。 如果我想要返回所有3000行,我只是从服务器得到一个空的答案。

如果表格有10行,则可以使用。

我想知道它是否与行数有关,或者是因为最终的特殊字符。

感谢

更新 它工作到1330行,如果我试图获得更多,我得到一个空的结果

$counter = 0;       
        while ($row = mysql_fetch_assoc($result)) {
            if ($row['Taken'] == '0')  $output = $output . $row['Nickname'] . ",";
            if ($counter == 1330) break;
            $counter++;
        }
        echo substr($output, 0, -1);

4 个答案:

答案 0 :(得分:1)

在表格行的中间某处可能存在无效字符。

由于您知道它停止工作的哪一行,请尝试使用不同的ORDER BY运行SELECT以确定是否是这种情况。 :)

答案 1 :(得分:0)

您是否尝试过显示错误消息?

  error_reporting(E_ALL|E_STRICT);
  ini_set('display_errors', true);

$ output可能会在到达echo之前填充memory_limit,如果display_errors为false,则不会看到错误说明内存不足。

答案 2 :(得分:0)

也许这太明显了,但...... 你检查了php.ini中的max_execution_time值吗?

在完成3000行获取之前,脚本可能正在死亡。

尝试设置

set_time_limit(0);

在脚本的开头,以避免此问题

答案 3 :(得分:-1)

在if条件应为$output

之后

$output = "";