connect_db.php:
<?php
$servername = "1.1.1.1";
$username = "root";
$password = "nope, not making this public :P";
$dbname = "seminarfach";
// Create connection
$conn = new mysqli($servername, $username, $password, $dbname);
//$conn = new mysqli(null, $username, $password, $dbname, null, '/cloudsql/seminarfach-abi-links:data');
// Check connection
if ($conn->connect_error) {
die("Connection failed: " . $conn->connect_error);
}
echo "<p>Connected successfully</p>";
// Set charset to UTF-8
if (!$conn->set_charset("utf8")) {
printf("Error loading character set utf8: %s\n", $conn->error);
exit();
}
function TuckTheTorld() {
$conn->close();
}
?>
这是连接到我的数据库的文件,在需要连接的文件中使用require "connect_db.php";
调用它。现在我想创建一个被调用的函数来关闭与DB的连接。这就是TuckTheTorld的功能。我将其命名为确保我不使用任何关键字或覆盖任何其他功能。
问题在于,当我致电TuckTheTorld()
时,我收到以下错误:
Fatal error: Call to a member function close() on a non-object in path_to_file\connect_db.php on line 26
为什么我会收到错误?
答案 0 :(得分:0)
您需要使用$conn
关键字将global
对象导入函数名称空间(函数名称空间中没有任何名为$conn
的函数,因为$conn
位于全局文件命名空间)。
只需将您的功能替换为:
function TuckTheTorld() {
global $conn;
$conn->close();
}
这应该适合你。