PHP MySQLI在get_results()处准备的语句中断

用户名

我对mysqli准备的语句非常陌生,实际上这是我的第一次尝试。我有这段代码,并且在每个命令之间放置了回显,并且它显示aaa和bbb但不显示ccc,我在这里做错了什么?

没有错误出现,只是一个空白屏幕:

<?php

        $mysqli = new mysqli("localhost", "username", "password", "database");

        if (mysqli_connect_errno()) {
                printf("Connect failed: %s\n", mysqli_connect_error());
                exit();
        }

        if ($stmt = $mysqli->prepare("SELECT title FROM `in-the-press`")) {
                $stmt->execute();

                echo 'aaa';

                $stmt->bind_result($title);

                echo 'bbb';

                $result = $stmt->get_result();

                echo 'ccc';

                while ($stmt->fetch()) {
                        printf("%s %s\n", $title);
                }

                echo 'ddd';

                $stmt->close();

        }

        $mysqli->close();

?>

更新我可以通过执行以下操作来使其工作:

<?php

            $mysqli = new mysqli("localhost", "username", "password", "database");

            if (mysqli_connect_errno()) {
                    printf("Connect failed: %s\n", mysqli_connect_error());
                    exit();
            }

            if ($stmt = $mysqli->prepare("SELECT id, community, map, image FROM `googleMaps`")) {

                $stmt->execute();

                $stmt->bind_result($id, $community, $map, $image);

                $stmt->fetch();

                printf($id . ' ' . $community . ' ' . $map . ' ' . $image);

                $stmt->close();

        }

?>

但这仅给我1行数据,如何获得所有数据行?

比尔·卡温

要使用get_result(),必须使用mysqlnd驱动程序。PHP 5.4和更高版本默认情况下启用此功能。如果使用的是早期版本的PHP,则必须进行一些安装才能使mysqlnd正常工作。参见http://php.net/manual/en/mysqlnd.install.php

如果使用get_result(),则不需要绑定任何东西。您只需将每一行作为数组获取,然后将列作为该数组的元素引用:

    if ($stmt = $mysqli->prepare("SELECT title, community, map, image  FROM `googleMaps `")) {
            $stmt->execute();
            $result = $stmt->get_result();
            while ($row = $result->fetch_assoc()) {
                    printf("%s %s\n", $row["title"], $row["community"]);
            }
            $stmt->close();
    }

如果不使用get_result(),则以旧方式使用Mysqli,将变量绑定到列,然后调用fetch()以填充变量。但是您需要运行一个循环,直到fetch()结果完成后返回NULL。

        if ($stmt = $mysqli->prepare("SELECT title, community, map, image FROM `googleMaps`")) {
            $stmt->execute();
            $stmt->bind_result($title, $community, $map, $image);
            while ($stmt->fetch()) {
                    printf("%s %s\n", $title, $community);
            }
            $stmt->close();
    }

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

PHP MySQLi准备的语句

来自分类Dev

正确处理php中mysqli准备的语句中的数据

来自分类Dev

在 PHP MySQLi 准备好的语句中结合 LIKE 和 IN

来自分类Dev

php mysqli在准备好的语句中重复字段

来自分类Dev

PHP MySQLi准备的语句-SELECT

来自分类Dev

PHP MySQLi准备的语句-SELECT

来自分类Dev

在PHP中使用MySQLi预准备语句,获取“预准备语句中没有为参数提供数据”

来自分类Dev

如何在PHP准备语句中使用“ mysqli_real_escape_string”?

来自分类Dev

如何在PHP变量中存储MySQLi准备语句中单行的单列?

来自分类Dev

准备好的语句中的$ row [''] PHP

来自分类Dev

PHP 函数准备语句中的致命错误

来自分类Dev

PHP-MySQLi预准备语句

来自分类Dev

PHP MySQLi准备的语句不起作用

来自分类Dev

PHP-MySQLi预准备语句

来自分类Dev

PHP MySQLi准备的语句不起作用

来自分类Dev

PHP:Mysqli准备的语句带有“选择*”

来自分类Dev

从准备好的语句中获取文本(PHP,PDO)

来自分类Dev

在PHP准备好的语句中插入日期

来自分类Dev

PHP预准备语句中的自定义where子句

来自分类Dev

检查PHP准备语句中是否为空

来自分类Dev

PHP准备语句中的问号不起作用?

来自分类Dev

检查PHP准备语句中是否为空

来自分类Dev

PHP绑定“ bigint”数据类型(MySQLi准备的语句)

来自分类Dev

查询使用SQL变量时Mysqli PHP准备的语句

来自分类Dev

PHP绑定“ bigint”数据类型(MySQLi准备的语句)

来自分类Dev

PHP MySQLi准备的语句fetch()返回'1'而不是查询结果

来自分类Dev

PHP mysqli为带out参数的存储过程准备了语句

来自分类Dev

PHP MySQLi为SELECT准备了语句(避免SQL注入)

来自分类Dev

为 PHP 用户类创建 mySQLi 准备好的语句

Related 相关文章

热门标签

归档