connect-phpmysql连接问题,不可以同时生成两个连接么。
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了connect-phpmysql连接问题,不可以同时生成两个连接么。,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含2593字,纯文字阅读大概需要4分钟。
内容图文
![connect-phpmysql连接问题,不可以同时生成两个连接么。](/upload/InfoBanner/zyjiaocheng/235/0af05761fe9743479eb2a1db32a94779.jpg)
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 。。。
这样的错误。
为什么呢?
回复内容:
简单封装了一个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 。。。
这样的错误。
为什么呢?
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去关。
代码写错了
$dbCon=mysql_connect(...);
应该是
$this->dbCon=mysql_connect(...);
内容总结
以上是互联网集市为您收集整理的connect-phpmysql连接问题,不可以同时生成两个连接么。全部内容,希望文章能够帮你解决connect-phpmysql连接问题,不可以同时生成两个连接么。所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。