php mysql 连接问题,不可以同时生成两个连接么。-问答-阿里云开发者社区-阿里云

开发者社区> 问答> 正文
阿里云
为了无法计算的价值
打开APP
阿里云APP内打开

php mysql 连接问题,不可以同时生成两个连接么。

2016-06-08 15:52:05 2878 2

简单封装了一个MySql的类

class MySql{
    private $dbCon;
    public function __construct(){
        $this->dbCon=mysql_connect(...);
        mysql_select_db("test",$this->dbCon);
    }
    public function query($query){
        return mysql_query($query,$this->dbCon);
    }
    public function closeDb(){
        mysql_close($this->dbCon);
    }
}

另外在两个类里面实例化该MySql连接并且定义方法获取数据。

class UserDao{
    private $mysql;
    public function __construct(){
       $this->mysql=new MySql();
    }
    public function getUsers(){
      $query="SELECT * FROM USERS";
      $rs=$this->mysql->query($query);
      #format data
      return $result;
    }
    public function __destruct(){
        $this->mysql->closeDb();
    }
}
class NoteDao{
    private $mysql;
    public function __construct(){
       $this->mysql=new MySql();
    }
    public function getNotes(){
      $query="SELECT * FROM Notes";
      $rs=$this->mysql->query($query);
      #format data
      return $result;
    }
    public function __destruct(){
        $this->mysql->closeDb();
    }
}

然后新建一个test.php页面
如果单独引用任何一个UserDao或者NoteDao都没有问题。但是如果同时引用UserDao和NoteDao来获取数据,则会有
PHP Warning: mysql_close(): 9 is not a valid MySQL-Link resource in 。。。
这样的错误。
为什么呢?

取消 提交回答
全部回答(2)
  • 睡着了去做梦
    2021-10-11 18:07:44

    可以使用连接池,来管理mysql的连接,不然随意连接或断开与服务端的连接,资源消耗很大的

    0 0
  • 小旋风柴进
    2019-07-17 19:32:09

    mysql_connect是会复用连接的。所以你new出来的两个 MySql 是用的同一个连接(可以var_dump出来看,resource id是同一个)。
    mysql_connect第四个参数是是否新建连接,默认FALSE,置成 TRUE 就行了。

    $this->dbCon = mysql_connect($host, $user, $passwd, TRUE);
    但是我不太建议这么做,本来连接是可以复用的~~~没必要新建。用mysql_connect创建的连接php是会自动释放的,不用调用mysql_colse去关。

    0 0
添加回答
相关问答

1

回答

无法建立连接,因为目标计算机主动拒绝了它(PHP / WAMP)?mysql

2020-05-13 14:35:16 406浏览量 回答数 1

0

回答

PHP MySQL 创建数据库和表

2015-07-19 15:59:04 10188浏览量 回答数 0

0

回答

PHP MySQL Insert Into

2015-07-20 10:16:48 8922浏览量 回答数 0

4

回答

如何查看服务器PHP,mysql配置是否支持事务处理

2015-04-28 13:04:24 7268浏览量 回答数 4

2

回答

支持语言及数据库类型:PHP、MySQL/mysqlaccess

2015-04-20 11:50:14 6956浏览量 回答数 2

1

回答

热点centos-hot-ljserv一键安装程序jexus/jsp/php/asp.net/mysql提供下载

2015-04-12 22:28:35 13703浏览量 回答数 1

4

回答

求助!您的PHP似乎没有安装运行WordPress所必需的MySQL扩展。

2015-02-10 00:38:45 10904浏览量 回答数 4

3

回答

镜像市场PHP运行环境(Centos64位PHP5.4Apache)默认MYSQL初始账户密码!

2015-01-29 13:09:30 6946浏览量 回答数 3

0

回答

有MySQL的php程序,单独用eds行么

2015-01-15 18:59:30 3784浏览量 回答数 0

1

回答

centos系统安装完wdsp面板后还需要安装PHP,mysql等环境么

2014-08-20 15:08:20 7268浏览量 回答数 1
2709
文章
6591
问答
问答排行榜
最热
最新
相关电子书
更多
低代码开发师(初级)实战教程
立即下载
阿里巴巴DevOps 最佳实践手册
立即下载
冬季实战营第三期:MySQL数据库进阶实战
立即下载