MySql是非持续连接函数而mysqli是永远连接函数。也就是说
mysql每次链接都会打开一个连接的进程
而mysqli多次运行mysqli将使用同一连接进程,从而减少了服务器的开销
数据访问的一般流程:
1.连接数据库 mysql_connect
2.选择数据库 mysql_select_db
3.执行SQL查询 mysql_query
4.处理返回的数据 mysql_fetch_array mysql_num_rows mysql_fetch_assoc mysql_fetch_row
而mysqli的是:
1.连接数据库 $mysqli = new mysqli($db_host,$db_user,$db_pwd,$db_name); 实例化连接数据库链接
//$connection = mysqli_connect("localhost","root","password","test");//面向过程
// mysqli还提供了一个连接MySQL的成员方法connect()。
// 当实例化构造方法为的mysqli类时,用mysqli对象调用
// connect()方法同样可连接MySQL,例如:
//$mysqli=new mysqli();
//$mysqli->connect($db_host,$db_user,$db_pwd,$db_name);
2.执行SQL查询 $query = "select * from tabel"; //执行查询使用query()方法
3. 处理返回的数据 $row =$result->fetch_array()
<?php $db_host="localhost"; $db_user = "root"; $db_pwd = "password"; $db_name = "test"; $mysqli = new mysqli($db_host,$db_user,$db_pwd,$db_name); //面向对象 //$connection = mysqli_connect("localhost","root","password","test");//面向过程 // mysqli还提供了一个连接MySQL的成员方法connect()。 // 当实例化构造方法为的mysqli类时,用mysqli对象调用 // connect()方法同样可连接MySQL,例如: $mysqli=new mysqli(); $mysqli->connect($db_host,$db_user,$db_pwd,$db_name); $query = "select * from tabel"; //执行查询使用query()方法 $result = $mysqli->query($query); if ($result) { if($result->num_rows>0) //判断结果集中行的数目是否大于0 { while($row =$result->fetch_array() ) //循环输出结果集中的记录 { echo ($row[0])."<br>"; echo ($row[1])."<br>"; } } } else { echo "查询失败"; } $result->free(); //free()方法将结果几种的内存释放 $mysqli->close(); //关闭数据库连接close() ?>
比如下面的函数都有两种写法:
关闭数据库:
$db->close();
or
mysqli_close($db);
释放内存:
$result->free();
or
mysqli_free_result($result);
选择数据库:
$db->select_db(dbname);
or
mysqli_select_db(db_resource,db_name);
还有很多,基本都一样,就不一一列举了。