有人可以帮助解释这个函数是如何工作的(mysqli预处理语句数组函数)

时间:2011-05-12 03:51:25

标签: php arrays mysqli prepared-statement

我只需要帮助我如何实现这个功能。我读不出这个。我发现这个函数将mysqli预处理语句查询的结果粘贴到我正在尝试做的数组中,但我不确定如何使用该函数。

$meta = $statement->result_metadata(); 

while ($field = $meta->fetch_field()) { 
    $params[] = &$row[$field->name]; 
} 

call_user_func_array(array($statement, 'bind_result'), $params);                
while ($statement->fetch()) { 
    foreach($row as $key => $val) { 
        $c[$key] = $val; 
    } 
    $hits[] = $c; 
} 
$statement->close();

1 个答案:

答案 0 :(得分:1)

while ($field = $meta->fetch_field()) { 
    $params[] = &$row[$field->name]; 
}

这将查看结果集并将字段名称提取到数组中。

call_user_func_array(array($statement, 'bind_result'), $params);                

然后使用该字段名称数组自动创建与数据库结果绑定到的字段同名的变量。这是非常糟糕的做法,因为它会根据查询结果自动创建变量,并且可能会覆盖您在其他地方用于其他目的的变量。你永远不知道为什么,因为没有明确指定要搜索的变量名。

while循环非常低效,但从查询结果中检索每一行并将它们放入名为$hits的数组中。

所以,基本上,它是一块镀金的牛粪,令人印象深刻。