从mysqli准备的语句创建一个数组


Create an array from a mysqli prepared statment

我有一个简单的脚本,我正在努力理解为什么它不起作用,以及如何获得我想要的东西。

我想要得到的是一个数组,称之为$results,并将数据存储如下

$results ->
    $row1 ->
        $field1
        $field2
        $field3
        $field4
        $field5
    $row2 ->
        $field1
        $field2
        $field3
        $field4
        $field5

等等。。。

但我甚至无法让mysqli循环输出结果,这是我的代码。。。

require_once ('lib/constants.php');
$mysqli = new mysqli(DB_SERVER, DB_USER, DB_PASSWORD, DB_NAME) or die('Error connecting to Database.');
$query = "SELECT * FROM employees LIMIT 0, 20";
if($stmt = $mysqli->prepare($query)) {
$stmt->execute();
$row = array();
stmt_bind_assoc($stmt, $row);
while($stmt->fetch()) {
    var_dump($row);
}
}

请检查PHP.net上的mysqli_result::fetch_assoc方法以更好地理解。

以下是的快速示例

require_once ('lib/constants.php');
$mysqli = new mysqli(DB_SERVER, DB_USER, DB_PASSWORD, DB_NAME) or die('Error connecting to Database.');
$query = "SELECT * FROM employees LIMIT 0, 20";
if ($result = $mysqli->query($query)) {
    /* fetch associative array */
    while ($row = $result->fetch_assoc()) {
        echo $row['myfield'];
    }
    /* free result set */
    $result->free();
}

您应该检查mysqli_result:::fetch_all而不是mysqli_result::fetch _assoc

$query = "SELECT * FROM employees LIMIT 0, 20";
if ($result = $mysqli->query($query)) {
    $array_assoc = $result->fetch_all();
    /* free result set */
    $result->close();
}