PHP PDO准备查询

前端之家收集整理的这篇文章主要介绍了PHP PDO准备查询前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我在PDO上阅读并在StackOverFlow上搜索了关于pdo和prepare语句的内容.我想知道什么是好处或使用准备声明.例如:
$sql = 'SELECT name,colour,calories FROM fruit WHERE calories < :calories AND colour = :colour';
$sth = $dbh->prepare($sql,array(PDO::ATTR_CURSOR => PDO::CURSOR_FWDONLY));
$sth->execute(array(':calories' => 150,':colour' => 'red'));
$red = $sth->fetchAll();

VS

$sql = "SELECT name,calories FROM fruit WHERE calories < $calories AND colour = $colour";
$result = $connection->query($query);
$row = $result->fetch(PDO::FETCH_ASSOC);

两个查询都将返回相同的结果,所以为什么使用准备,对我来说看起来它会慢,因为你必须执行额外的步骤.

谢谢

准备好的陈述是:

>更安全:PDO或底层数据库库将负责为您转义绑定变量.如果始终使用预准备语句,则永远不会容易受到sql注入攻击.
>(有时)更快:许多数据库将缓存预准备语句的查询计划,并通过符号引用预准备语句,而不是重新传输整个查询文本.如果您只准备一次语句然后重复使用带有不同变量的预准备语句对象,则这一点最为明显.

在这两个中,#1更为重要,并使准备好的陈述不可或缺!如果你没有使用准备好的语句,唯一明智的做法就是在软件中重新实现这个功能. (当我被迫使用MysqL驱动程序并且无法使用PDO时,我已多次这样做了.)

猜你在找的PHP相关文章