我没有mysqlnd可用,所以我实现了一个辅助函数来完成这项工作:
public function bind_array($ stmt,& $ row){
$md = $stmt->result_metadata();
var_dump($md);
$params = array();
while($field = $md->fetch_field())
{
$params[] = &$row[$field->name];
}
call_user_func_array(array($stmt, 'bind_result'), $params);
}
麻烦的是,我还需要能够返回多行。截至目前,它只能返回一行。
...谢谢
编辑:我的目标是获得与调用mysqli fetch_assoc相同的结果,这对我来说是不可用的,因为我没有mysqlnd ...数组之后将是json_encoded ..
答案 0 :(得分:0)
你可以尝试my wrapper for PDO which can make it even better than original class - 它使用起来非常简单,将旧的mysql函数的简单性与预处理语句的强大和安全性结合起来。
说,为了得到你的多个结果你需要一行代码,在mysqli的情况下与几个屏幕相反或在使用旧的mysql函数时半打:
$sql = 'SELECT return, fields FROM table WHERE search_field = ?';
$data = DB:prepare($sql)->execute([$search_val])->fetchAll();
现在$ data包含您可以迭代的所需结果
foreach ($data as $row)
{
echo $row['fields'];
}
只需使用您的数据库凭据在某处定义四个常量,然后您就可以在代码中的任何位置使用数据库,就像过去使用旧的mysql一样。