首先, mysqli 连接是永久连接,而mysql是非永久连接(错!错!错!)。什么意思呢? mysql连接每当第二次使用的时候,都会重新打开一个新的进程,而mysqli则只使用同一个进程,这样可以很大程度的减轻服务器端压力。
其次,mysqli封装了诸如事务等一些高级 *** 作,同时封装了DB *** 作过程中的很多可用的方法。具体查看 http://cn.php.net/mysqli
应用比较多的地方是 mysqli的事务。
比如下面的示例:
$mysqli = new mysqli('localhost','root','','DB_Lib2Test')
$mysqli->autocommit(false)//开始事物
$mysqli->query($sql1)
$mysqli->query($sql2)
if(!$mysqli->errno){
$mysqli->commit()
echo 'ok'
}else{
echo 'err'
$mysqli->rollback()
}
注意:
“mysqli 连接是永久连接,而mysql是非永久连接” 这个观点是错误的。
php手册上讲:php5.3中的mysqli才引入了持久连接,并且php5.3没有提供一个额外的函数来实现,需要在连接参数的hostname,前面加上“p:”标记,才会建立持久连接。
Persistent connection support was introduced in PHP 5.3 for the mysqli extension. Support was already present in PDO MYSQL and ext/mysql.
Unlike the mysql extension, mysqli does not provide a separate function for opening persistent connections. To open a persistent connection you must prepend p: to the hostname when connecting.
你所说的持久性连接是开机就自动运行吗,不大懂意思,请作下补充!Mysql的服务安装完就会有,只要一开机就会自动运行这项服务,只要不用杀毒软件禁止就行了。右键我的电脑——管理——服务和应用程序——服务;里面可以看到这项服务,你的要是禁用了,启动就可以了。
如果想开机就启动Mysql这个程序,首先建立它的快捷方式。左下角点开始——程序——启动;双击点开,把快捷方式放进去就行了。或者直接打开那个文件夹,位置C:\Documents and Settings\Administrator\「开始」菜单\程序\启动,放进去一样的效果。
(1)Mysql和Mysqli的区别是:mysqli连接是永久连接,而mysql是非永久连接。
mysql连接:每当第二次使用的时候,都会重新打开一个新的进程。
mysqli连接:一直都只使用同一个进程。
好处:这样就可以很大程度的减轻服务器压力。
(2)mysql_connect与mysql_pconnect与mysqli_connect:
mysql_pconnect打开的连接不会关闭(即使调用mysql_close也不会关闭,因为对其无效),
类似于连接缓冲池,如果下次有来自于同一个机器的同一个用户名
对同一个数据库的连接,php会自动使用上次已经建立的连接,而不需要再重新建立一个。?
好处:是省去了每次与建立连接的开销,
坏处:是需要浪费一些,占用一些连接,
所以如果用户访问量大的时候会出现错误,要把的max_connections参数改大一点,?或者使用mysql_connect()就解决问题。
connect与pconnect不会带来功能的差异,?只有性能上的差别.
一般php有俩种运行模式,?一是作为cgi运行,?二是作为apache的模块运行.?
作为cgi的时候connect跟pconnect没什么不同,?因为每次cgi进行运行结束后都会被销毁清理掉资源.
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)