pdo mysql优势_PDO和Mysqli对比分析与总结归纳

$query = "SELECT id, first_name, last_name FROM users";

// PDO

$result = $pdo->query($query);

$result->setFetchMode(PDO::FETCH_CLASS, 'User');

while ($user = $result->fetch()) {

echo $user->info()."\n";

}

// MySQLI, procedural way

if ($result = mysqli_query($mysqli, $query)) {

while ($user = mysqli_fetch_object($result, 'User')) {

echo $user->info()."\n";

}

}

// MySQLi, object oriented way

if ($result = $mysqli->query($query)) {

while ($user = $result->fetch_object('User')) {

echo $user->info()."\n";

}

}

安全方面

二者都可以防止sql注入

代码

// PDO, "manual" escaping

$username = PDO::quote($_GET['username']);

$pdo->query("SELECT * FROM users WHERE username = $username");

// mysqli, "manual" escaping

$username = mysqli_real_escape_string($_GET['username']);

$mysqli->query("SELECT * FROM users WHERE username = '$username'");

预处理机制

// PDO, prepared statement

$pdo->prepare('SELECT * FROM users WHERE username = :username');

$pdo->execute(array(':username' => $_GET['username']));

// mysqli, prepared statements

$query = $mysqli->prepare('SELECT * FROM users WHERE username = ?');

$query->bind_param('s', $_GET['username']);

$query->execute();

总结

pdo的强大之处是显而易见的,支持多种数据库,还有参数绑定是特色,所以还是要会用PDO哦

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值