【发布时间】:2010-12-19 10:52:03
【问题描述】:
我熟悉使用 PHP 执行 mySQL 查询。但是,我一直在使用 reg exps 作为对注入攻击的保护。在阅读了关于 SO 的几个问题/答案后,我决定改为选择准备好的陈述。
有两种选择(如果有更多请告诉我):
问题 1
我正在尝试理解链接页面上给出的代码示例。
对于 mysqli,示例 #1:
if ($stmt = $mysqli->prepare("SELECT District FROM City WHERE Name=?")) {
$stmt->bind_param("s", $city);
"s" 参数有什么作用?
如果我需要超过 1 个参数,我该怎么做?
对于 PDO,示例 #1:
$sth = $dbh->prepare($sql, array(PDO::ATTR_CURSOR => PDO::CURSOR_FWDONLY));
PDO::ATTR_CURSOR 和 PDO::CURSOR_FWDONLY 这里的目的是什么?
问题 2
你会推荐哪一个,mysqli 或 PDO?利弊?
【问题讨论】:
标签: php pdo mysqli prepared-statement