PHP 连接数据库什么情况下才会用到持久链接 mysql_pconnect() ?
PHP
连接数据库有两种方式: mysql_connect()
和
mysql_pconnect()
。下面分别介绍使用的不同之处:
1、mysql_pconnect()
函数打开一个到
MySQL
服务器的持久连接。
2、mysql_pconnect()
和
mysql_connect()
非常相似,但有两个主要区别:
1.当连接的时候本函数将先尝试寻找一个在同一个主机上用同样的用户名和密码已经打开的(持久)连接,如果找到,则返回此连接标识而不打开新连接。
2.其次,当脚本执行完毕后到
SQL
服务器的连接不会被关闭,此连接将保持打开以备以后使用(mysql_close()
不会关闭由
mysql_pconnect()
建立的连接)。
语法
mysql_pconnect(server,user,pwd,clientflag)参数
描述
server
可选。规定要连接的服务器。
可以包括端口号,例如
"hostname:port",或者到本地套接字的路径,例如对于
localhost
的
":/path/to/socket"。
如果
PHP
指令
mysql.default_host
未定义(默认情况),则默认值是
'localhost:3306'。
user
可选。用户名。默认值是服务器进程所有者的用户名。
pwd
可选。密码。默认值是空密码。
clientflag
可选。client_flags
参数可以是以下常量的组合:
•MYSQL_CLIENT_SSL
-
使用
SSL
加密
•MYSQL_CLIENT_COMPRESS
-
使用压缩协议
•MYSQL_CLIENT_IGNORE_SPACE
-
允许函数名后的间隔
•MYSQL_CLIENT_INTERACTIVE
-
允许关闭连接之前的交互超时非活动时间
返回值
如果成功,则返回一个
MySQL
持久连接标识符,出错则返回
FALSE。
提示和注释
注释:可选参数
clientflag
自
PHP
4.3.0
版起可用。
提示:要创建一个非持久连接,请使用
mysql_connect()
函数。
例子如下:
主要使用场合:
当db操纵错杂,
耗时较长时,
因httpd会fork很多并发过程处理惩罚,
而先产生的httpd过程不开释db连接,
使得后产生的httpd过程无法连上db.
因为如许没有复用其它httpd过程的mysql连接.
于是会就产生很多连接超时。
在并发接见量不高时,应用pconnect可以简单进步接见速度,
但在并发量增大后,
是否再应用pconnect就要见地度员的选择了.