$stmt->fetch()
在循环中运行会用最后while()
一条记录替换以前收集的所有数据object
,即使您将其推送到循环中的数组也是如此。
我有一个简单的数据库,名为
dbemployee
我编写了一个小脚本来让所有员工都超过特定年龄。
这是我的代码:
<?php
$conn = mysqli_connect("localhost", "root", "", "test");
if ($conn->connect_error) {
die("Connection failed: " . $conn->connect_error);
}
$output = new stdClass();
$employee = new stdClass();
// $ageCheck = $_POST['ageCheck'];
$ageCheck = 18;
$sql = "SELECT ID, vemail, vname, vage FROM dbemployee WHERE vage > ?";
$stmt = $conn->stmt_init();
if ($stmt->prepare($sql)) {
$stmt->bind_param("s",$ageCheck);
$stmt->execute();
$stmt->store_result();
$stmt->bind_result($ID, $vemail, $vname, $vage);
if ($stmt->num_rows > 0) {
while ($stmt->fetch()) {
$employee->ID = $ID;
$employee->vemail = $vemail;
$employee->vname = $vname;
$employee->vage = $vage;
$output->data[] = $employee;
}
} else {
$output->data = "";
}
$output->response = "SUCCESS";
}
header('Content-Type: application/json');
print_r($output);
?>
令人惊讶的是,我得到的只是最后结果的 5 个条目,就好像最后结果正在替换以前的结果一样。
呼如林