欢迎各位兄弟 发布技术文章

这里的技术是共享的

You are here

mysql和mysqli的区别

shiping1 的头像
网上搜到的一些关于mysql与mysqli的区别:
Mysql and Mysqli(Mysql Improved) are two library functions ( or Extension) in the PHP which is used to acces mysql database.Mysqli is the improved version of mysql which support OOPS. The mysqli extension allows you to access the functionality provided by MySQL 4.1 and above.
 
mysql是非持继连接函数而mysqli是永远连接函数。也就是说
mysql每次链接都会打开一个连接的进程而mysqli多次运行mysqli将使用同一连接进程,从而减少了服务器的开销
如果使用new mysqli('localhost', usenamer', 'password', 'databasename');总是报错,Fatal error: Class 'mysqli' not found in ...那么要检查一下mysqli是不是开启的。
mysqli类不是默认开启的,win下要改php.ini,去掉php_mysqli.dll前的;,linux下要把mysqli编译进去。
 
In relation to PHP programming language, MySQL is the old database driver, and MySQLi is the Improved driver. MySQLi takes advantage of the newer features of MySQL 5. Lifted verbatim from the php.net site:

- Object-oriented interface
- Support for Prepared Statements
- Support for Multiple Statements
- Support for Transactions
- Enhanced debugging capabilities
- Embedded server support

You have the choice of using mysql, mysqli, or PDO essentially. 

If you're simply looking for a relational database, you need look no further than MySQL, though there are many options available. You can use DBD, Postgres, MySQL, MSSQL, sqlite, etc etc etc...

HTH

Source(s):

 
 
mysqli的用法:
$mysqli = new mysqli('localhost''my_user''my_password''my_db');
mysql的用法:
$link mysql_connect('example.com:3307''mysql_user''mysql_password');
在处理中文乱码问题的时候,我是在$link mysql_connect('example.com:3307''mysql_user''mysql_password');之后设置连接字符集:
mysql_query("set names utf8");【注】:不能写成utf-8
然后再设置所操作的数据库:
mysql_select_db("my_db");
而使用mysqli的时候,数据库名是作为mysqli构造方法的一个参数,所以这时候设置连接字符集不起作用了(或许是我用的方法不对,试过各种方法,使用mysqli的时候中文一直就是乱码的)。

来自 http://younglab.blog.51cto.com/416652/285543

 
普通分类: