【发布时间】:2015-02-19 12:47:45
【问题描述】:
我最初创建了以下查询以从我的数据库中返回一些结果。
$result = mysqli_query($con, "SELECT bookingId, locationName
FROM bookings
WHERE username = '$one'");
$output = array();
while($row = mysqli_fetch_assoc($result)) {
$output[]=$row;
}
print(json_encode($output));
但是,我现在想使用准备好的语句并尝试了以下方法。但它总是返回[]。这是通过准备好的语句返回行的正确方法吗?
$stmt = $con->prepare('SELECT bookingId,locationName
FROM bookings
WHERE username= ?');
$stmt->bind_param('s', $one);
$stmt->execute();
$stmt->bind_result($id, $loc);
$output = array();
while($row = $stmt->fetch()){
$output[] = $row;
}
$stmt->close();
print(json_encode($output));
【问题讨论】:
-
要么删除
bind_result行,你不要同时使用$id和$loc,或者在循环中使用它($output[$id] = $loc)。
标签: php json mysqli prepared-statement