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


Can someone help explain how this function works (mysqli prepared statment array function)

我只需要一点关于如何实现这个函数的帮助。 我不太能读懂这个。我发现这个函数可以将 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();
while ($field = $meta->fetch_field()) { 
    $params[] = &$row[$field->name]; 
}

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

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

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

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

所以,基本上,它是一块镀金的牛粪,

令人印象深刻的是很少。