mysql 与 mysqli的区别
2015-11-07 10:22
387 查看
mysqli.dll是PHP对mysql新特性的一个扩展支持。在PHP5中可以在php.ini中加载 mysql后面的i,指improved, interface, ingenious, incompatible or incomplete(改扩展仍在开发中,因为MYSQL4。1和MYSQL5都没有正式推出尚在开发中,新的特性没有完全实现) mysqli想实现的目标具体有: -更简单的维护 -更好的兼容性 -向后兼容 mysql(指PHP中的模块)发展到现在显得比较凌乱,有必要重新做下整理。同时,有必要跟上MYSQL(DBMS)的发展步伐,加入新的特性的支持,以及适应MYSQL(DBMS)以后的版本。所以诞生了mysqli.dll mysqli.dll的特性: -可以和mysql.dll一样的方式使用 -支持OO接口,简简单单调用 -支持MYSQL4。1引入的新特性 -通过mysqli_init() 等相关函数,可以设置高级连接选项
其次,mysqli封装了诸如事务等一些高级操作,同时封装了DB操作过程中的很多可用的方法。具体查看 http://cn.php.net/mysqli
应用比较多的地方是 mysqli的事务。
1.mysql是非持继连接函数而mysqli是永远连接函数
也就是说mysql每次链接都会打开一个连接的进程
,而mysqli多次运行mysqli将使用同一连接进程,从而减少了服务器的开销
有 些朋友在编程的时候,使用 new mysqli('localhost', usenamer', 'password', 'databasename');总是报 错,Fatal error: Class 'mysqli' not found in d:...
mysqli类不是php自带的吗?
不是默认开启的,win下要改php.ini,去掉php_mysqli.dll前的;,linux下要把mysqli编译进去
2.
mysqli连接是永久连接,而mysql是非永久连接。
mysql连接:每当第二次使用的时候,都会重新打开一个新的进程。
mysqli连接:一直都只使用同一个进程。
好处:这样就可以很大程度的减轻服务器端压力。
当然,如果mysql也需要永久连接的话,就可以使用mysql_pconnect()这个函数
mysqli的面向过程的使用:
$conn = mysqli_connect('localhost', 'root', '123', 'db_test') or ('error'); $sql = "select * from db_table"; $query = mysqli_query($conn,$sql); while($row = mysqli_fetch_array($query)){ echo $row['title']; }
mysqli的面向对象的使用:
$conn = new mysqli('localhost', 'root', '123', 'db_test'); $sql = "select * from db_table"; $query = $conn->query($sql); while($row = $query->fetch_array()){ echo $row['title']; }
相关文章推荐
- MySQL--INFORMATION_SCHEMA COLUMNS表
- xampp 运行MySQL shutdown unexpectedly的解决方案
- mysql int(3)与int(11)的区别
- mysql中utf8_bin、utf8_general_ci、utf8_general_cs编码区别
- MySQL 更改默认编码为 utf8 (转)
- mysql 置顶查询和置末查询的实现思路
- Mysql学习笔记
- MySQL5.1 忘记root密码的解决方法
- wamp集成环境下mysql数据库的分开部署和远程访问
- navicat 创建存储过程
- mysql的sql_mode合理设置
- MySQL存储过程初遇
- mysql如何开启远程连接(默认未开启,即使密码正确,仍然无法访问)
- 如何创建一个mysql账号
- MySQL加载 数据库连接的两个方法:
- C#连接Mysql查询乱码
- mysql 学习记录(二十四)--mysql相关工具
- 在Ubuntu上安装Mysql并远程连接
- mysql向表中插入时间
- mysql触发器