php - Mysqli - 将结果绑定(bind)到数组

标签 php mysql arrays mysqli bind

我最近从 mysql 切换到 mysqli 并开始使用准备好的语句。 在 mysql 中我们做

$result = mysql_query("SELECT * FROM table WHERE id = ?");

所以我们在一个变量中得到了整个表的数组。

但是在 mysqli 中我们可以

mysqli_stmt_bind_result($stmt, $result);

所以基本上这里只有一个变量绑定(bind)到变量结果。 我们如何获得与从 mysql 中获取的相同的变量(数组)?
PS - 希望我的问题足够清楚。我知道他们可能的方法不多,但我正在寻找最好的方法。
PSS - 我更喜欢程序化的方式。

最佳答案

终于这个代码是工作!!!!!

  <?php 
    $host = 'localhost'; 
    $user = 'root'; 
    $pass = '1234'; 
    $data = 'test'; 

    $mysqli = new mysqli($host, $user, $pass, $data); 
    /* check connection */ 
    if (mysqli_connect_errno()) { 
        printf("Connect failed: %s\n", mysqli_connect_error()); 
        exit(); 
    } 

    if ($stmt = $mysqli->prepare("SELECT * FROM sample WHERE t2 LIKE ?")) { 
        $tt2 = '%'; 

        $stmt->bind_param("s", $tt2); 
        $stmt->execute(); 

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

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

        while ($stmt->fetch()) { 
            foreach($row as $key => $val) 
            { 
                $c[$key] = $val; 
            } 
            $result[] = $c; 
        } 

        $stmt->close(); 
    } 
    $mysqli->close(); 
    print_r($result); 
    ?>

关于php - Mysqli - 将结果绑定(bind)到数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24363755/

相关文章:

php - 如何修复此路由器类以包含 404 错误/页面?

php - 检查 MySql 表中的行

javascript - php Javascript 变量引用错误

php - php 数组上的 Foreach 数组

php - Laravel 没有保存到数据库

MySQL : Does a query searches inside the whole table?

mysql - 我试图从 dbvisualizer 连接 SQL 中的 3 列

mysql - 如何在 Crystal Reports 或 SQL 中的单行中显示多行的列数据

Java变量保存

javascript - 为什么我的解决方案有效而其他解决方案无效?