假设我有2个php文件
在第一个我有数据库的连接。因为我在另一个php文件中需要它,所以我将它分配给这样的全局变量。
setconnection.php
<?php
$servername = 'localhost';
$username = 'root';
$password = '';
$dbname = 'database';
// Create connection
$GLOBALS['connect'] = new mysqli($servername, $username, $password, $dbname);
// Check connection
if ($GLOBALS['connect']->connect_error) {
die("Connection failed: " . $conn->connect_error);
}
$db_selected=mysqli_select_db($GLOBALS['connect'],'database');
mysqli_set_charset($GLOBALS['connect'],'utf8');
?>
然后我有另一个php文件,其中我使用上面php文件中的连接
像这样关闭连接是正确的吗?
的index.php
include_once "setconnection.php";
$GLOBALS['connect']->close();
答案 0 :(得分:0)
好问题!我从未在示例中的任何地方看到它。关闭连接只会节省内存资源。无论如何,Php应该在脚本执行后关闭非持久连接。但是,情况可能并非总是如此。当遗留代码持续忽略关闭连接时,我有服务器CPU重载。 截至目前,我们为多个功能保留了一个连接,这实际上与您正在做的事情是一样的。适合我们。
答案 1 :(得分:-1)
在我看来,这是合法的。在关闭连接之前,不要忘记检查连接是否真正打开或已经关闭。
答案 2 :(得分:-1)
这是完全合法的,正如Pekka Are PHP include paths relative to the file or the calling code?所说,
...请记住
include()
只是将代码插入当前正在运行的脚本
所以,我们假设您有一个名为 example.php 的文件:
function example() {
echo 'Hello, world!';
}
并将其包含在 index.php :
中include 'example.php';
example();
这与在一个文件中包含所有内容相同:
function example() {
echo 'Hello, world!';
}
example();
因此,关闭另一个文件中的连接并没有任何错误,这个文件不是您打开连接的文件。