gpt4 book ai didi

php - 在 php 中传递 MySql 连接

转载 作者:行者123 更新时间:2023-11-29 00:29:49 24 4
gpt4 key购买 nike

我已经尝试将一个 mysqli 连接脚本放入一个 php 函数中,各种 php 文件可以调用该函数来连接到数据库。我创建了以下函数:

public function connectToDatabase() {

$con = mysqli_connect($databaseHost, $databaseUsername, $databasePassword, $databaseName);

echo "<br><br>";

if (mysqli_connect_errno($con)) {
echo "Failed to connect to MySQL:" . mysqli_connect_error();
} else {
echo "Connection successful";
}

return $con;
}

然后我使用另一个文件调用该函数(已包含上述文件):

$con = connectToDatabase();

然而,虽然 top 函数中的代码工作正常,但在变量 $con 中传递连接似乎不起作用。我想到连接在到达返回语句时会自动关闭。是这样吗?如果是这样,我该如何阻止它?

非常感谢

最佳答案

虽然您的问题已在评论中得到解答,但最好将您的连接构建为单例类,这样您就不会在整个代码中打开连接的多个实例:

class DatabaseConnection {

const HOST = 'localhost';
const USERNAME = 'not_root';
const PASSWORD = 'not_blank';
const NAME = 'your_db';

private static $_instance;

// Private constructor prevents instantiation
private function __construct() {
}

public static function getInstance() {
if (!self::$_instance) {
self::$_instance = mysqli_connect(self::HOST, self::USERNAME, self::PASSWORD, self::NAME);
if (mysqli_connect_errno(self::$_instance)) {
throw new Exception("Failed to connect to MySQL:" . mysqli_connect_error());
}
}
return self::$_instance;
}
}

然后,这样调用它:

try {
$con = DatabaseConnection::getInstance();
} catch (Exception $e) {
// Handle exception
echo $e->getMessage();
}

关于php - 在 php 中传递 MySql 连接,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17132048/

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