【问题标题】:MySQL connection reuse problemMySQL连接重用问题
【发布时间】:2009-07-08 18:20:43
【问题描述】:

我正在尝试重用 mysql 连接。因此,我在 databasemanager.php 类中有一个返回连接的全局变量。

问题出在某个特定页面上,mysql 也在执行先前的查询。

看起来连接对象中有一些剩余的查询,如果相同的连接被重用,就会被执行。可能吗 ?如何解决这个问题..

 function getDBConnection(){
   global $conn;
   if (!empty($conn)){
// echo $conn ;
    return $conn;
   }
   $conn =  mysql_connect($GLOBALS['HOSTNAME'],$GLOBALS['DBUSER'],$GLOBALS['DBPASS']);

    if (!$conn) {
     die('Could not connect: ' . mysql_error());
    }

    mysql_select_db($GLOBALS['DBNAME'],$conn);
    return $conn;

}

这是代码的样子

【问题讨论】:

  • 我们需要看看你是如何连接的(什么功能和什么参数)。另外,您是通过请求还是在同一个请求中重用连接?
  • 您是否有特别的原因想要重用 MySQL 连接?它们通常非常轻量级,因此尝试重用它们没有多大意义(除非您计划有大量负载或在受限硬件上运行)。

标签: mysql


【解决方案1】:

你看过mysql_pconnect吗?

根据文档:

mysql_pconnect() 的行为非常像 mysql_connect() 有两个主要的 差异。

首先,连接时,函数 会首先尝试找到一个(持久的) 已经打开的链接相同 主机、用户名和密码。如果一个是 找到,它的标识符将是 返回而不是打开一个新的 连接。

二、连接SQL 服务器不会关闭时 脚本的执行结束。反而, 该链接将在未来保持开放 使用 (mysql_close() 不会关闭 建立的链接 mysql_pconnect())。

【讨论】:

    猜你喜欢
    • 2010-09-23
    • 2011-02-16
    • 1970-01-01
    • 2011-06-15
    • 2011-06-03
    • 2011-05-17
    • 2015-09-19
    相关资源
    最近更新 更多