mysqli_fetch_assoc崩溃,但mysqli_fetch_array(MYSQLI_NUM)有效

时间:2013-06-18 12:42:38

标签: php mysql

当我尝试使用fetch_assoc或fetch_array(MYSQLI_ASSOC)时,程序崩溃并且不显示任何错误信息(我确实将error_reporting更改为E_ALL)。但是当使用fetch_array(MYSQLI_NUM)或fetch_row时它工作正常()。 奇怪的是我可以在Wamp上运行我的程序。但我不能手动安装Apache + PHP + MYSQL环境。 这是PHP配置问题还是MYSQL问题?

 $studentId = $this->mydblink->real_escape_string($studentId);
    $result = $this->mydblink->query("SELECT * FROM student WHERE id = '$studentId'");
    if($result->num_rows <= 0){
        $result->free();
        return null;
    }
    else{
        $returnValue = array();
        while($row = $result->fetch_assoc()){
            array_push($returnValue,$row);
        }
        $result->free();
        return $returnValue;
    }

1 个答案:

答案 0 :(得分:0)

fetch_array()创建一个关联数组,其中有一个键和值。 fetch_assoc()只有值

您还可以使用fetch_object()创建表名的对象。

| id  |    category   |   name   |
----------------------------------
|  1  | 2, 5, 7, 28   |   Will   |
---------------------------------- 
|  2  | 2, 9, 15, 18  |   Drew   |

实施例

$sql=mysqli_query($connect, "SELECT id, category, name FROM users");

$data=mysqli_fetch_array($sql);
// 0=>id, 1=>category, 2=>name
$data[1]; // is same like $data['category'];
$data['category'];

$data=mysqli_fetch_assoc($sql);
$data['name'];

$data=mysqli_fetch_object($sql);
$data->name;
$data->category;
$data->id;