PHP中MySQL连接管理
来源:互联网 发布:如何导出淘宝客户资料 编辑:程序博客网 时间:2024/06/06 00:49
对于PHP程序来来说,MySQL是一种稀缺的资源。MySQL默认最大连接数为100,也即是最多接受100个MySQL的客户端连接。因此,PHP在使用MySQL连接时做了一些优化的处理。这些优化,可能对性能有所提升,但对使用MySQL连接的使用却也造成一些困惑。
创建MySQL连接:
只有当手动指定new_link为true时,PHP才会避开这个检查,直接重新向PHP服务器发起MySQL连接请求。
这种处理在下面这种情况下就会产生错误:
解决这个问题的方法就是在第二次调用mysql_connect()时,指定new_link为true即可。
关闭MySQL连接:
对于使用mysql_connect()创建的连接资源,对资源变量进行unset()并不能真正地释放资源,需要调用mysql_close()才能达到释放MySQL连接资源的效果。
需要注意的是:使用mysql_connect()获取共享MySQL连接资源时,调用mysql_close()有时并不能释放MySQL连接,只有当所有共享连接资源都调用mysql_close()时,PHP才会真正释放MySQL连接。
创建MySQL连接:
resource mysql_connect ( [string server [, string username [, string password [, bool new_link [, int client_flags]]]]] )当使用mysql_connect()创建一个MySQL连接后,PHP会把这个连接的信息,包括host, username, password与连接资源存储起来。下次调用mysql_connect()时,PHP会默认检查是否存在一个参数相同(参数包括host, username, password)的连接资源,如果存在,则直接返回之前创建的资源,而非新建一个MySQL连接。(PS:当两次调用连接的不是相同服务器时,只能创建新的MySQL连接,旧的连接无法共享)
只有当手动指定new_link为true时,PHP才会避开这个检查,直接重新向PHP服务器发起MySQL连接请求。
这种处理在下面这种情况下就会产生错误:
$conn1 = mysql_connect($dbhost, $dbuser, $dbpwd);mysql_select_db('database1', $conn1);$conn2 = mysql_connect($dbhost, $dbuser, $dbpwd);mysql_select_db('database2', $conn2);mysql_query('select * from table1', $conn1);用户期望在database1查询table1的信息,但是由于在第二次mysql_connect(),PHP返回的是上一次的MySQL连接资源。因此,对于$conn2中切换数据库也对$conn1造成了影响,$conn1也同时切换默认到数据库database2,查询的信息会是在database2上面的结果。
解决这个问题的方法就是在第二次调用mysql_connect()时,指定new_link为true即可。
关闭MySQL连接:
对于使用mysql_connect()创建的连接资源,对资源变量进行unset()并不能真正地释放资源,需要调用mysql_close()才能达到释放MySQL连接资源的效果。
需要注意的是:使用mysql_connect()获取共享MySQL连接资源时,调用mysql_close()有时并不能释放MySQL连接,只有当所有共享连接资源都调用mysql_close()时,PHP才会真正释放MySQL连接。
- PHP中MySQL连接管理
- PHP中MYSQL的连接
- php中连接MySQL数据库
- php中mysql函数 连接数据库
- PHP 中MySQL 连接,查询,更新操作
- PHP 中Mysql配置连接的问题
- PHP中MySQL的连接封装
- PHP中mysql连接断开重连接机制
- MySQL 连接与管理
- spacemacs mysql连接管理
- Mysql 中线程管理与连接池代码导读
- PHP连接MYSQL数据库
- 用PHP连接MySQL
- php连接mysql数据库
- php连接mysql数据库
- PHP 连接MySQL 数据库
- PHP连接mysql例子
- PHP连接MYSQL问题解决
- 【100题】第七十一题~第七十五题
- 学习C++的好书
- 组播技术
- 达芬奇平台-CCS3.3搭建emcv开发环境
- 自定义 UITableViewCell 的 accessory 样式
- PHP中MySQL连接管理
- WCF客户端创建
- 算法的描述
- PM
- HTTP隧道技术工具Reduh穿透防火墙,内网渗透利器--reDuh(webshell跳板)
- 编译Android下的stasm图像识别可执行文件
- 《Effective C++》读书笔记之item43:学习处理模板化基类内的名称
- 到底怎么样才叫看书?——上篇
- 达芬奇平台-EMCV移植和测试