php连接 mysql的三种连接方式

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 - 面向过程
<?php
$con = mysql_connect("localhost","root","password");
$select_db = mysql_select_db('test');
if (!$select_db) {
    die("could not connect to the db:\n" .  mysql_error());
}
//查询代码
$sql = "select * from db_table";
$res = mysql_query($sql);
if (!$res) {
    die("could get the res:\n" . mysql_error());
}
while ($row = mysql_fetch_assoc($res)) {
    print_r($row);
}
//查询代码...

//关闭数据库连接
mysql_close($con);
?>
  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: %s\n", $conn->connect_error);
    exit();
}
//查询代码
$sql = “select * from db_table”;
$query = $conn->query($sql);
while($row = $query->fetch_array()){
    echo $row['title'];
}
//查询代码...

//释放结果集+关闭MySQL连接
$query1 -> free_result();
$conn -> close();
  1. PDO
<?php
$db = new PDO('mysql:host=localhost;dbname=test', 'root', 'password');
try {
    foreach ($db->query('select * from db_table') as $row){
      print_r($row);
    }
    $db = null; //关闭数据库
} catch (PDOException $e) {
    echo $e->getMessage();
}
?>

关闭连接

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

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

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

//PDO - 面向对象
$conn = null;
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

友情链接更多精彩内容