php - 在 php 脚本中检查特定的 mysql 连接是否已经存在?

标签 php mysql connection

我为每个数据库表对象创建了一个类。每个类都负责连接/查询/数据格式(数据库表特定逻辑),因为我更喜欢为每个类分配一个连接以获得更好的模块化。此外,我正在为某些表和查询使用特定的连接。

我的问题是如何检查一个连接是否已经存在,这样它就不会启动另一个连接?

基本上我想检查是否已经建立了具有相同用户名/密码/数据库的连接。或者这是没有必要的,因为 mySql 不会为同一用户启动新连接?如果是这样,请解释。

经过进一步研究发现这是不可能的……它需要获取线程 ID 并将 conn 与线程 id 一起使用,并且它会像持久性 conn 一样工作;或者它需要跟踪脚本期间使用的每个线程 ID,这有点没用。

目前还没有一个简单的方法来做到这一点......持久连接可以是一种选择,但你必须注意连接清理并再次 sux :)

附言:最终我确实在我的应用程序运行期间为连接创建了一个跟踪系统(那些说将它们存储在全局可用对象中的人我们是对的)。将 conn 对象和 conn params 存储在单例类对象的 2 个数组中,检查 params 是否已经存在于 params 数组中,如果不存在,则创建新的 conn,如果是,则从与 params 所在键相同的数组键中获取 conn 对象被发现...我已经有了为此制作的体系结构但不想使用那个类...不是我开始的逻辑:),并且还想将它放在一个库项目中,这就是为什么我正在寻找一个简单而抽象的解决方案,但只有一个特定的解决方案:)

最佳答案

  • 为每个类创建新连接不是一个好主意。它可能对您来说是模块化的,但您的 mysql 服务器很快就会因 太多连接 错误而变得臃肿。

我建议使用单例模式和一些 OO。

class Singleton{
    private static $instance=null;
    public function connection(){
        if(self::$instance==null){
            self::$instance = mysql_connect(); // define it in your way,
        }
        return self::$connection;
    }
}

class TableA extends Singleton{
    function find($id){
        $query="select * from `A` where `id`='$id'";
        mysql_query($query, $this->connection());
        ... // other codes
    }
}

关于php - 在 php 脚本中检查特定的 mysql 连接是否已经存在?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8685896/

相关文章:

mysql - 一对多关系的数据库设计

mysql - 从另一个模式 MySql 上的表更新表上的列

mysql - 将客户端计算机连接到 MySQL 服务器计算机

php - 从 ereg_replace 到 preg_replace 需要更改什么?

php - 如何根据公共(public)字段合并不同表的两行数据

mysql - Node.js MySQL 错误 : ECONNREFUSED only sometimes

java - java中没有应用程序服务器的数据库连接池

C++ 服务器端不阻塞 listen()

php - 使用 PHP 创建 MSSQL 表时出现错误 ` Incorrect syntax near ' `'. `

php - 如何获取带有签名 URL 的 Amazon s3 加密对象?