php操作mysql数据库,大家都知道有三种驱动,mysql mysqli pdo,其中mysql在php7之后被废除了。不是本文重点。咱现在来分析一下mysqli和PDO的区别,下面一张表用来说明他们的区别
连接方式
// PDO
$pdo = new PDO(“mysql:host=localhost;dbname=database”, ‘username’, ‘password’);
// mysqli面向过程
$mysqli = mysqli_connect(‘localhost’,‘username’,‘password’,‘database’);
// mysqli面向对象
$mysqli = new mysqli(‘localhost’,‘username’,‘password’,‘database’);
对数据库的支持方面
pdo多种支持
代码表现
var_dump(PDO::getAvailableDrivers());
参数绑定
POD方式
$params = array(’:username’ => ‘test’, ‘:email’ => $mail, ‘:last_login’ => time() - 3600);
$pdo->prepare(’
SELECT * FROM users
WHERE username = :username
AND email = :email
AND last_login > :last_login’);
p d o − > e x e c u t e ( pdo->execute( pdo−>execute(params);
mysqli方式
$query = $mysqli->prepare(’
SELECT * FROM users
WHERE username = ?
AND email = ?
AND last_login > ?’);
$query->bind_param(‘sss’, ‘test’, $mail, time() - 3600);
$query->execute();
对象映射
假设我们有一个类,是如下这样
class User {
public $id;
public $first_name;
public $last_name;
public function info()
{
return '#'.$this->id.': '.$this->first_name.' '.$this->last_name;
}
}
再看看两者的方式
$query = “SELECT id, first_name, last_name FROM users”;
// PDO
$result = p d o − > q u e r y ( pdo->query( pdo−>