【发布时间】:2015-08-12 18:47:14
【问题描述】:
以下代码:
$con = ConnectDB::getConnection();
if ($stmt = $con->prepare('---SQL here with 1 param---')) {
$stmt->bind_param('i', $this->id);
$stmt->execute();
$stmt->bind_result($device_id, $device_identifier);
while ($stmt->fetch()) {
$device = new Device($device_identifier, $device_id);
$all_devices[] = $device;
}
获取一个空结果?第一次通过循环时,$device_id 和 $device_identifier 为空,但 fetch() 方法返回 true,因此它运行。但是 - 第二次迭代实际上包含我的结果。
我可以简单地检查它们是否为空并忽略它们,但我真的不明白为什么它返回一个空对?我尝试直接在数据库上运行 SQL,它只返回 1 个结果行?
有什么想法吗?
【问题讨论】:
-
你定义了
$all_devices = array();吗?
标签: php mysql mysqli prepared-statement