mysql connect mysqli_mysql_connect和mysqli_connect的不同(写法和效率)

mysqli是PHP对mysql新特性的一个扩展支持

mysqli的特性:

-可以和mysql.dll一样的方式使用

-支持OO接口,简简单单调用

-支持MYSQL4。1引入的新特性

-通过mysqli_init()

等相关函数,可以设置高级连接选项

以下实例说明:

以下所用到的常量都是:

DEFINE('DB_HOST','localhost');

DEFINE('DB_USER','root');

DEFINE('DB_PASSWORD','123456');

DEFINE('DB_NAME','forum');

PHP5以上的版本常用mysqli.....

$dbc = @mysqli_connect(DB_HOST,DB_USER,DB_PASSWORD,DB_NAME) OR

die('无法连接数据库mysql:'.mysqli_connect_error() );

mysqli_query($dbc,'SET

NAMES gb2312'); //早前用mysql_query只要一个参数"set names

gb2312"即可。现在需要两个参数。

$q = "insert into

users(username,first_name,last_name,email,pass) VALUES

('$un','$fn','$ln','$e',SHA1('$p'))";

$r = mysqli_query($dbc,$q);

//注意两个参数,而且连接的$dbc放在前面

对于早期PHP版本的mysql_connect相关语法如下:

$dbc = @mysql_connect(DB_HOST,DB_USER,DB_PASSWORD) OR

die('无法连接数据库mysql:'.mysqli_connect_error() );

//数据库名放在mysql_select_db中

mysql_select_db(DB_NAME,$dbc);

//上面mysqli_connect中并入了这个

mysql_query("set names gb2312"); //只要一个参数

$q = "insert into users(username,first_name,last_name,email,pass)

VALUES ('$un','$fn','$ln','$e',SHA1('$p'))";

$r = mysql_query($q);

关于二者的效率:

网上有一篇文章,说是mysql效率比mysqli快,原文如下:

------------------------------------------------------------

首先给出我的实验结论:mysql_connect()

+ mysql_select_db() 比 mysqli_connet() 效率要高。

实验代码:

$begin = microtime(true);

mysql_connect('localhost', 'root', '');

mysql_select_db('blog');

$end = microtime(true);

$mysql_time = $end - $begin;

$begin = microtime(true);

mysqli_connect('localhost', 'root', '', 'blog');

$end = microtime(true);

$mysqli_time = $end - $begin;

echo '$mysql_time - $mysqli_time = ' , $mysql_time - $mysqli_time;

这个代码运行出来的结果总是负数,也就是说 mysql_connect() + mysql_select_db() 的效率比

mysqli_connect() 的效率要高,速度要快。

另外这里的效率比较利用到了一个 PHP 函数:microtime(),这个函数可以有一个可选参数,当这个参数值为

TRUE 的时候,运行这个函数:microtime(true); 得到的是当前的 Unix

时间戳的浮点数值,就是小数值,如:1250822177.4848;而如果没有参数,得到的是类似:0.48482600

1250822177 这样的值,这是什么,大概大家都应该能看出来的吧。

------------------------------------------------------------------------------------------------------------------------

不过个人实验的结果是绝大部分mysqli快,但基本相差不多,如:

$mysql_time - $mysqli_time =

0.00029897689819336 $mysql_time - $mysqli_time =

0.00033020973205566 $mysql_time - $mysqli_time =

-0.00017499923706055 因此,基于mysqli的新特性,建议用mysqli。版本升级带来的东西总是有其道理。


版权声明:本文为weixin_36238073原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。