PHP 5 及以上版本建议使用以下方式连接 MySQL :

MySQLi extension (“i” 意为 improved)
PDO (PHP Data Objects)
在 PHP 早期版本中我们使用 MySQL 扩展。但该扩展在 2012 年开始不建议使用。

MySQLi 和 PDO 有它们自己的优势:

PDO 应用在 12 种不同数据库中, MySQLi 只针对 MySQL 数据库。

所以,如果你的项目需要在多种数据库中切换,建议使用 PDO ,这样你只需要修改连接字符串和部分查询语句即可。 使用 MySQLi, 如果不同数据库,你需要重新编写所有代码,包括查询。

两者都是面向对象, 但 MySQLi 还提供了 API 接口。

两者都支持预处理语句。 预处理语句可以防止 SQL 注入,对于 web 项目的安全性是非常重要的。

  1. MySQL – 面向过程

  1. MySQLi – 面向过程
$mysql_server_name = 'localhost'; //改成自己的mysql数据库服务器
$mysql_username = 'root'; //改成自己的mysql数据库用户名
$mysql_password = 'password'; //改成自己的mysql数据库密码
$mysql_database = 'test'; //改成自己的mysql数据库名
$conn=mysqli_connect($mysql_server_name,$mysql_username,$mysql_password,$mysql_database); //连接数据库
//连接数据库错误提示
if (mysqli_connect_errno($conn)) { 
    die("连接 MySQL 失败: " . mysqli_connect_error()); 
}
mysqli_query($conn,"set names utf8"); //数据库编码格式
// mysqli_set_charset($conn,"utf8");//设置默认客户端字符集。
// mysqli_select_db($conn,$mysql_database); //更改连接的默认数据库
//查询代码
$sql = “select * from db_table”;
$query = mysqli_query($conn,$sql);
while($row = mysqli_fetch_array($query)){
    echo $row['title'];
}
//查询代码...

// 释放结果集+关闭MySQL数据库连接
mysqli_free_result($result);
mysqli_close($conn);
  1. MySQLi – 面向对象
//连接数据库方式1
conn = new mysqli('localhost', 'root', 'password', 'test');
//连接数据库方式2
//conn = new mysqli();
// conn -> connect('localhost', 'root', 'password', 'test');
//check connection (检查PHP是否连接上MYSQL)
if (conn -> connect_errno) {
    printf("Connect failed: %sn", conn->connect_error);
    exit();
}
//查询代码sql = “select * from db_table”;
query =conn->query(sql);
while(row = query->fetch_array()){
    echorow['title'];
}
//查询代码...

//释放结果集+关闭MySQL连接
query1 -> free_result();conn -> close();
  1. PDO
query('select * from db_table') as row){
      print_r(row);
    }
    db = null; //关闭数据库
} catch (PDOExceptione) {
    echo $e->getMessage();
}
?>

关闭连接

//MySQL - 面向过程
mysql_close(conn);

//MySQLi - 面向过程
mysqli_close(conn);

//MySQLi - 面向对象
conn->close();

//PDO - 面向对象conn = null;

文章来源于互联网:php连接 mysql的三种连接方式

发表评论