gpt4 book ai didi

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

转载 作者:可可西里 更新时间:2023-10-31 22:11:22 24 4
gpt4 key购买 nike

我是 mysqli 准备语句的新手,事实上这是我第一次尝试。我有这段代码,我在每个命令之间放置了 echo ,它显示 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(),那么您不需要绑定(bind)任何东西。您只需将每一行作为一个数组获取,并将列作为该数组的元素进行引用:

    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,将变量绑定(bind)到列,然后调用 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();
}

关于PHP MySQLI 准备好的语句在 get_results() 处中断,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24962932/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com