这个MySQL查询(PHP)有什么问题?

时间:2012-06-07 20:28:56

标签: php mysql mysqli

所以我有这一小段代码,由于某种原因不想实际工作。我一直试图找出原因,但无济于事。

$mysqli =& db::connect();

$sql = "SELECT * FROM `my_table`";
$result = $mysqli->query($sql);
if( ! $result ) die( "SQL Error ($mysqli->errno): $mysqli->error" );
while($row = $result->fetch_assoc())
{
//Do something here
}

我收到以下错误:

  

PHP致命错误:在

中的非对象上调用成员函数fetch_assoc()

尝试运行该脚本时。

有什么建议吗?

编辑:如有必要,请提供更多信息: 我正在尝试查询的表中有174条记录。 运行PHP 5.3和MySQL 5.1。 我可以在phpMyAdmin中运行相同的查询,没有任何问题。

编辑2:是的,这是完整的查询。这是var_dump的结果:

object(mysqli_result)#2 (5) { 
    ["current_field"]=> int(0) 
    ["field_count"]=> int(16) 
    ["lengths"]=> NULL 
    ["num_rows"]=> int(174) 
    ["type"]=> int(0) 
} 

编辑3: 剪掉它,因为它根本没用。

编辑4:

我似乎无法找到有关mysqli_result对象无法在while循环中使用的原因的任何信息。我找到的每个答案最终都会回到“确保你有一个mysqli_result”,我可以从上面的var_dump中看到这一点。我将不得不稍后回到这一点,但任何建议都会很棒。

编辑5:

感谢@Quassnoi在$ result变量上检查辅助赋值的抬头。在执行循环期间就是这种情况,因为我有一个条件语句可以检查数据库的另一部分,但仅限于某些条件。我应该坚持准备这样的小条件检查语句。

0 个答案:

没有答案