MySQL查询不会拉所有行

时间:2013-03-04 22:28:18

标签: php mysql

这是我的代码:

$counter = 0;
$result = mysql_query("select * from funds_backup");

echo mysql_num_rows($result)."</br>";   // <--this prints 48,173

while ($row = mysql_fetch_object($result)) {
    $counter++;
    $name = $row->Name;
    $ticker = $row->Ticker  ;
    $current[$ticker] = $name;
    echo $counter."  ".$current[$ticker]."</br>"; //<--this prints to 48,173

      }
echo count($current);   // <--this prints 45,650

我无法让mysql_fetch_object将所有48,173行初始化为php数组。

我以前用更大的查询做过这个。我不知道为什么这不起作用。它不会截断数组的末尾,即省略45,651-48,173。这是随机的。我使用过TRIM(),但这不起作用。它也是一致的。始终省略相同的行。

想法?

2 个答案:

答案 0 :(得分:1)

听起来你有多行包含相同的数据 - 这意味着$ticker的值不止一次结束。在这种情况下,您将使用该键覆盖以前的数组条目。尝试$current[] = $name;$current[$counter] = $name;以确保所有数组键都是唯一的。

答案 1 :(得分:0)

{* 1}}函数实际上已在PHP5.5中弃用,因此您可能需要考虑更改代码以使用PDO或MySQLi。

确保字段'Ticker'实际上是唯一的,否则值将被覆盖。此外,在运行此程序时,您是否收到任何内存耗尽错误?这可能是造成这种情况的原因之一。

mysql_*返回什么?如果 48,173,则值会被覆盖。