php - 我怎样才能在 PHP 中为整个项目建立一个 MySQL 连接

标签 php mysql mysqli

我的项目有一个静态的 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/

相关文章:

php - 尝试将 DOMDocument::loadHTMLFile 与生成的 url 一起使用

php - 获取“org.apache.http.conn.httphostconnectexception 连接到 http ://x. x.x.x :88/mobile. php 被拒绝

php 将结果集逻辑组织到嵌套的 JSON

php - 帮助运行 MySQL。 SQL yog 给出错误 HY000) : Can't connect to MySQL server on 'localhost' (10061)

PHP MySQLI 选择多列返回 null

php - foreach 循环中的 PDO::bindParam,所有值都设置为相同?

php - json_encode 不响应 getJson

php - codeigniter 如何加载 View 文件并传递变量?

php - 计算两个日期包含的日历月数

PHP根据时间从mysql加载数据