我正在尝试学习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);
}
}
?>
我有两行应该返回每行包含一个id,login_name,login_password和一个login_level。
当语句运行时,它只打印以下内容:
11
非常感谢任何帮助。
答案 0 :(得分:6)
fetch()方法返回TRUE
,FALSE
或NULL
,具体取决于它是否成功获取数据。它不会返回数组中的数据。相反,它将结果放在由bind_result()方法约束的变量中。
答案 1 :(得分:1)
它返回1,因为PHP中的1为TRUE。
您应该做的是使用[bind_result][1]
方法绑定变量,然后执行:
while ($stmt->fetch()) {
printf ("%s\n", $variable);
}
就是一个很好的例子
答案 2 :(得分: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);
}