在PHP 5中将准备好的查询结果绑定到数组中

时间:2014-06-04 19:46:23

标签: php arrays

我正在尝试将$stmt -> fetch()生成的结果绑定到数组中。一个糟糕的解决方案是我把它放在while循环中并从那里得到数组的结果。我问这个问题的唯一原因是因为我不能在PHP 5.3中使用mysqli_result::fetch_array() or mysqli_result::fetch_assoc(). , get_result()而我的服务器不支持它。请告诉我有没有更好的方法来使用get_result()

等短代码

我试过这个但到目前为止没有运气。

$stmt->execute();     

/* Bind results */
$stmt -> bind_result($abc);

/* Fetch the value */
$row = $stmt -> fetch();
$row1=$row;

1 个答案:

答案 0 :(得分:-1)

我正在使用此备用代码(因为我无法使用get_result),我在此处找到了这些代码:https://stackoverflow.com/a/8882407/1930721

<?php
$stmt = $db->prepare( ' YOUR SQL QUERY ' ) ); /* edit to your needs */
$stmt->bind_param( ... ); /* edit to your needs */

$stmt->execute();

$meta = $stmt->result_metadata();
$fields = $result = array();
while ($field = $meta->fetch_field()) { 
    $var = $field->name; 
    $$var = null; 
    $fields[$var] = &$$var; 
}
call_user_func_array(array($stmt,'bind_result'),$fields);
$i = 0;
while ($stmt->fetch()) {
    $result[$i] = array();
    foreach($fields as $k => $v)
        $result[$i][$k] = $v;
    $i++;
}
?>