Php 如果检索所有行,则mysql获取结果为空
我在使用php+mysql从服务器返回值时遇到一些问题 这是我的密码Php 如果检索所有行,则mysql获取结果为空,php,mysql,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)) {
$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);
您是否尝试过显示错误消息
error_reporting(E_ALL|E_STRICT);
ini_set('display_errors', true);
可能$output在到达回显之前已填满内存限制,如果display\u errors为false,则不会看到表示内存不足的错误。可能太明显了,但是。。。 您是否检查了php.ini中的max_execution_time值 在完成3000行提取之前,脚本可能正在消亡 尝试设置
set_time_limit(0);
在脚本开头避免此问题
$output
之后,if条件应为$output=“”代码> 在表格行的某个地方,可能有一个无效字符。
由于您知道它在哪一行停止工作,请尝试运行具有不同顺序的SELECT以确定是否是这种情况。:) 你能不能也发布你的SQL查询,让我们看看你实际上是如何查询数据库的?另外:你确定每个$row['take']总是ascii字符0吗?我想脚本的时间执行有问题。@Nick Shaw是的,我确定。我已将SQL查询添加到问题中。正如我之前所说的,它可以完美地用于少数几行,但当我想要检索所有3000行时就不行了。$输出可能太大,无法显示。查看限制100和限制1000是否有效的疑难解答。出于安全原因,set_time_LIMIT()已被禁用。我已尝试过,但没有收到任何错误。此外,内存限制目前为96M。我想只有文字就足够3000行了,对吗?