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

开发者社区> 问答> 正文

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

2016-06-08 15:52:05 2834 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配置问题,Mysql配置发生冲突-php报错

2020-06-02 12:30:34 251浏览量 回答数 1

1

回答

关于PHP配置问题,Mysql配置发生冲突:配置报错 

2020-06-02 17:20:47 342浏览量 回答数 1

1

回答

PHP如何读取WEB服务器上的JS文件源代码,报错

2020-06-20 21:30:31 2393浏览量 回答数 1

1

回答

PHP 读取TXT文件的相关问题,报错

2020-06-20 21:31:25 2444浏览量 回答数 1

1

回答

首页index.php文件没有放到htdocs文件夹根目录下 出现403错误

2018-10-12 20:49:10 1212浏览量 回答数 1

1

回答

在浏览器中打开php文件时,是Linux中的哪个用户执行的?

2017-11-30 17:36:53 1698浏览量 回答数 1

0

回答

如何通过IIS7.5和php.ini配置文件调整网站后上传文件大小限制

2017-11-02 15:04:04 2369浏览量 回答数 0

8

回答

文件存贮在阿里云的OSS,PHP怎么实现多文件打包下载?

2017-03-10 11:14:31 11892浏览量 回答数 8

1

回答

新建PHP的utf-8无dom文件,关了再打开变成ANSI了,怎么办?

2016-06-14 14:25:47 2233浏览量 回答数 1

1

回答

关于在linux中定时执行php文件的问题!

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