本文为您介绍PHP的MySQL函数和MySQLi函数的区别,并提供代码示例。

函数说明

PHP可以通过MySQL和MySQLi两种函数操作MySQL数据库,两种函数的主要区别如下所示:

  • MySQL:
    • 在PHP 5之前,一般使用PHP的MySQL函数操作MySQL数据库,属于面向过程的方式。例如,函数mysql_query()
    • MySQL是非持继连接函数,每次连接都会打开一个新的连接进程。
  • MySQLi:
    • 在PHP 5之后,新增了MySQLi函数,它是MySQL函数的增强版,比MySQL函数更加稳定、高效和安全,属于面向对象的方式。例如,函数mysqli_query()
    • MySQLi是永久连接函数。即使您多次运行MySQLi函数连接服务器,也只会使用同一连接进程,可有效减少服务器的资源浪费。
    • MySQLi不仅封装了数据库操作过程中的常用方法,还封装了事务等一些高级操作。

代码示例

MySQL和MySQLi的语法有区别,以query语句为例,如下所示:

  • MySQL函数中,使用mysql_query(SQL语句,资源标识)时,资源标识是可选参数,默认值是上一个打开的连接或资源。
  • MySQLi函数中,使用mysqli_query(资源标识,SQL语句)时,必须指定资源。

本文以使用MySQL函数和MySQLi函数连接数据库、从数据库中获取指定字段的值为例,示例代码如下所示:

  • MySQL代码示例:
    $conn = mysql_connect(‘localhost’, ‘user’, ‘password’); //连接mysql数据库  
    mysql_select_db(‘data_base’);  //选择数据库
    $result = mysql_query(‘select from data_base’);//第二个可选参数,指定打开的连接  
    $row = mysql_fetch_row( $result ) ) //只取一行数据  
    echo $row[0]; //输出第一个字段的值 
  • MySQLi代码示例:
    $conn = new mysqli(‘localhost’, ‘user’, ‘password’,’data_base’);  //使用new操作符,最后一个参数是直接指定数据库
    $conn -> select_db(‘data_base’) //如果上一句没有指定数据库,需要执行本命令指定数据库 
    $result = $conn -> query( ‘select from data_base’ );  
    $row = $result -> fetch_row(); //取一行数据 
    echo row[0]; //输出第一个字段的值