1

我正在尝试学习 PHP5,但遇到了一些问题。我正在使用准备好的语句并尝试运行以下代码:

<?php
require_once 'includes/config.php';

$conn = new mysqli(DB_SERVER, DB_USER, DB_PASSWORD, DB_NAME) or 
die('There was a problem connecting to the database.');

$query = "SELECT * FROM user_table";

    if($stmt = $conn->prepare($query)) {
        $stmt->execute();

        while ($row = $stmt->fetch()) {
            print_r ($row);
        }

    }

?>

我有 2 行它应该返回每行包含一个 id、login_name、login_password 和一个 login_level。

当语句运行时,它只打印以下内容:

11

任何帮助将不胜感激。

4

3 回答 3

6

fetch()方法返回TRUE, FALSE, 或NULL取决于它是否成功获取数据。它不返回数组中的数据。相反,它将结果放在由bind_result()方法绑定的变量中。

于 2009-03-16T00:03:54.167 回答
1

它返回 1,因为 1 在 PHP 中为 TRUE。

您应该做的是将变量与该[bind_result][1]方法绑定,然后执行以下操作:

while ($stmt->fetch()) {
    printf ("%s\n", $variable);
}

一个很好的例子是在绑定结果文档页面上。

于 2009-03-16T00:07:05.237 回答
1

为了能够以这种方式获得,您首先需要像这样绑定结果变量:

$stmt->execute();

// bind the result variables in order 
$stmt->bind_result($id, $login_name, $login_password, $login_level);

// then get results
while ($stmt->fetch()) {
    var_dump($id, $login_name, $login_password, $login_level);
}
于 2009-03-16T00:11:22.387 回答