我的项目有一个静态的 mysql 连接方法,如果线程现在处于事件状态,则不会再次建立连接,但是有一个问题,当我们使用 ajax 时,每个 ajax 请求都会获得一个单独的连接,因为 ajaxes 程序考虑作为当前程序流程之外。 我试图将连接对象保存为一个 session ,即使我序列化了它,但是当我再次尝试使用它时出现错误。
这是我的代码:
public static function DBConnect(){
if(!self::$conn)
{
self::$conn = $link = mysqli_connect(_dbHost_,_dbUser_,_dbPass_,_dbName_);
if (mysqli_connect_errno())
{
echo 'Could not select database ' ._dbName_ .' '. mysqli_error($link);
exit;
}
mysqli_query($link,"SET NAMES 'utf8'");
//var_dump(self::$conn);
return self::$conn;
}
else
return self::$conn;
}
那么有谁能给我一个连接整个项目的想法吗?
最佳答案
这不是简单的方法,因为连接通常在请求结束时关闭,而 AJAX 请求是单独的请求。
但是您可以查看持久连接,这在 http://php.net/manual/en/mysqli.persistconns.php 中有解释。并通过在主机名前加上 p:
来构建。这使连接在多个请求中保持打开状态
关于php - 我怎样才能在 PHP 中为整个项目建立一个 MySQL 连接,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48163735/