Php / Html - 数据库断开连接

时间:2013-04-01 22:11:47

标签: php html mysql

我有一个工作的PHP代码,它只是连接数据库列表数据并关闭它。 我将这个工作的PHP代码嵌入到我的html中,但它不解析其余的html。列出数据库和php关闭标签“?>”后的数据很简单。我试图摆脱“$ db-> disconnect();”在PHP中,现在它的工作原理。

你知道为什么吗? 我真的需要使用$ 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

2 个答案:

答案 0 :(得分: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

答案 1 :(得分:1)

在命令行上运行

php test.php

并查看错误消息

  

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

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

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