0

我有一个工作 php 代码,它简单地连接数据库列出数据并关闭它。我将此工作 php 代码嵌入到我的 html 中,但它不解析 html 的其余部分。列出数据库中的数据和php关闭标签“?>”后,它是简单的空白。我试图摆脱 php 中的“$db->disconnect();”,现在它可以工作了。

你知道为什么吗?我真的需要使用 $db->disconnect(); 每次?

谢谢

beginning of the html code
                    <ul>
                        <?php
                        $db = new mysqli('localhost', 'root', 'root', 'troy');

                        if (mysqli_connect_errno()) {

                           printf("Can't connect to MySQL Server. Errorcode: %s\n", mysqli_connect_error());

                           exit;

                        }

                        $query = "SELECT * FROM platters";

                        $result = $db->query($query);

                        while($row = mysqli_fetch_array($result)) {
                             echo "<li>" . $row['name'] . "</li>";
                        } 
                        $db->disconnect();
                        ?>
                    </ul>
rest of the html code
4

2 回答 2

1

$db->disconnect();未在文档下列出,这是您创建的自定义函数吗?

您应该执行以下操作,而不是断开整个数据库连接:

$result->close();

这将释放当前查询,并使您能够在整个 PHP 脚本中执行进一步的连接。

仅当您完成该脚本的 SQL 连接后,才完全关闭与数据库的连接


编辑

重新阅读您的问题后,$db->disconnect();不是 MySQli 的功能。在此处查看整个文档:

http://php.net/manual/en/book.mysqli.php

你应该使用:

$db->close();关闭与数据库的当前连接(如果在您的数据库变量上使用)

http://www.php.net/manual/en/mysqli.close.php

于 2013-04-01T22:27:40.450 回答
1

在命令行上运行它

php test.php

并查看错误消息

PHP 致命错误:在第 28 行的 test.php 中调用未定义的方法 mysqli::disconnect()

这就是为什么它输出数据库中的所有内容,但忽略该行之后的所有内容的原因。

当您删除该$db->disconnect();语句时,错误就消失了,PHP 脚本可以一直运行到最后。

于 2013-04-01T22:27:50.300 回答