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。版本升级带来的东西总是有其道理。