PHP PDO与mysql *()的安全优势

时间:2011-05-25 03:05:31

标签: php pdo

使用PHP PDO代替mysql_connect()等有什么安全好处吗?

3 个答案:

答案 0 :(得分:3)

甚至不需要bindParam,只需执行

$stmt = $pdoConnection->prepare('SELECT foo FROM bar WHERE baz = :baz');
$stmt->execute(array(':baz' => 1));
foreach ($stmt as $row) {
}

那很容易。

答案 1 :(得分:3)

没有。 PDO与MySQL扩展没有任何安全性好处(Murphy定律教导我们的内容除外)。两者都可以通过转义相同的字符来使输入安全。

然而,PDO还有其他优点:

  • 支持准备好的陈述;
  • 面向对象的界面;
  • 数据访问抽象;和
  • 生成更干净的代码,因为您可以一次转义多个值

这些通常被认为是最重要的。

答案 2 :(得分:2)

是的,如果您使用的是bindParam()方法,而不是使用mysql_real_escape_string()进行字符串连接。

记住bindParam()外部数据比记住使用mysql_*自己逃避每个值更容易。

此外,PDO可以更好地使用。