不使用mysqlnd返回多行 [英] Return multiple row without the use of mysqlnd

查看:45
本文介绍了不使用mysqlnd返回多行的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我没有mysqlnd可用,所以我实现了一个辅助函数来完成这项工作:

I dont have mysqlnd available, so i implemented a helper function to do the job:

公共函数bind_array($ stmt,& $ row){

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);
}

麻烦的是,我还需要它能够返回多行.到目前为止,它只能返回单行.

The trouble is, that i also need it to be able to return multiple rows. As of now it can only return a single row.

谢谢....

我的目标是获得与调用mysqli fetch_assoc时相同的结果,这对我不可用,因为我没有mysqlnd ...此后该数组将被json_encoded ..

What im aiming for is getting the same result as when calling mysqli fetch_assoc, which is not available for me, as i dont have mysqlnd... The array will afterwards be json_encoded ..

推荐答案

实际上,PDO比使用mysqlnd的mysqli更容易.

in fact, PDO is WAY easier than mysqli with mysqlnd.

您可以尝试我的PDO包装器,甚至可以使它比原始类更好-使用起来非常简单,将旧的mysql函数的简单性与准备好的语句的强大功能和安全性结合在一起.

You can try my wrapper for PDO which can make it even better than original class - it's incredible simple in use, combining simplicity of old mysql functions with power and safety of prepared statements.

说,要获得多个结果,您将需要一行代码,与使用旧版mysql函数时使用mysqli或使用六个屏幕时的几个屏幕相反:

Say, to get your multiple results you wull need one single line of code, opposite to several screens in case of mysqli or half-dozen when using old mysql functions:

$sql  = 'SELECT return, fields  FROM table WHERE search_field = ?';
$data = DB:prepare($sql)->execute([$search_val])->fetchAll();

现在$ data包含您可以迭代的所需结果

now $data contains the desired result you can iterate over

foreach ($data as $row)
{
     echo $row['fields'];
}

只需在某个位置使用DB凭据定义四个常量,然后就可以在代码中的任何位置使用数据库,就像以前的旧mysql ext一样.

Just define four constants with your DB credentials somewhere and then you'll be able to use database anywhere in your code, just like with old mysql ext used to be.

这篇关于不使用mysqlnd返回多行的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆