加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > PHP教程 > 正文

PHP – bind_result到数组

发布时间:2020-12-13 16:12:34 所属栏目:PHP教程 来源:网络整理
导读:我正在为一个返回多个结果的查询使用一个预准备语句,我想在一个数组中使用它.但是bind_result不能用于数组,所以我就是这样做的: $read_items = $db-stmt_init();$read_items-prepare("SELECT item_id,item_name FROM items");$read_items-execute();$read_i
我正在为一个返回多个结果的查询使用一个预准备语句,我想在一个数组中使用它.但是bind_result不能用于数组,所以我就是这样做的:

$read_items = $db->stmt_init();
$read_items->prepare("SELECT item_id,item_name FROM items");
$read_items->execute();
$read_items->bind_result($var1,$var2);
while ($read_items->fetch()) {
  $item_id[] = $var1; 
  $item_name[] = $var2;
}

是否有更清晰/更好/更优雅的方式将结果放入$item_id和$item_name数组?

从上面可以看出,我使用$var1和$var2就像“中间人” – 并且不断感觉必须有更好的方法.

谢谢.

解决方法

我不能相信它,但 PHP manual有一个很好的解决方案(逐字粘贴):

<?php

// blah blah...
call_user_func_array(array($mysqli_stmt_object,"bind_result"),$byref_array_for_fields);

// returns a copy of a value
$copy = create_function('$a','return $a;');

$results = array();
while ($mysqli_stmt_object->fetch()) {
    // array_map will preserve keys when done here and this way
    $results[] = array_map($copy,$byref_array_for_fields);
}

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读