可能的php mysqli错误


Possible php mysqli bug

我不确定这是不是一个bug,但有时当我使用mysql检索结果时,我得到这个:

$result->fetch_array();
mysqli_result Object (
    [current_field] => 0
    [field_count] => 1
    [lengths] => Array (
        [0] => 3
    )
    [num_rows] => 1
    [type] => 0
) Fatal error: Cannot use object of type mysqli_result as array

看一下文档,它应该返回一个数组或null,而不是一个对象。这是臭虫吗?

看一下压缩后的代码:

$query="SELECT * FROM table where id=''";
$result=$link->query($query);
$row=$result->fetch_array();
print_r($row);

示例代码没有重现PHP 5.3.4中的问题(所有示例代码都应该这样做)。

$result的类型为mysqli_result。基于此和转储值,您使用的是$result,而您应该使用$row

您必须将$result->fetch_array()的返回值分配给一个变量,然后该变量变为数组或null。

$row = $result->fetch_array();$row[0]等等等等

从mysqli结果对象的文档中:

mySQLi的结果是:

表示从对数据库

的查询中获得的结果集

当我使用PHP读取MySQL时,我使用这个:

$query = mysql_query("select something from something");
while($row = mysql_fetch_array($query)){
  $msql[$i]=$row;
  $i++;
}

,现在,我有一个二维$msql数组与选定的值