我熟悉使用PHP来执行MySQL的查询。 不过,我一直在使用REG EXPS作为对注入攻击的保护。 上所以这里读书的几个问题/答案之后,我决定选择准备好的语句来代替。
有两种选择(让我知道如果有更多):
- mysqli的准备语句
- PDO准备staments
问题1
我想了解的链接页面给出的示例代码。
对于mysqli的 ,实施例#1:
if ($stmt = $mysqli->prepare("SELECT District FROM City WHERE Name=?")) {
$stmt->bind_param("s", $city);
什么是"s"
参数吗?
如果我需要超过1个paramater,我该怎么办呢?
对于PDO,实施例#1:
$sth = $dbh->prepare($sql, array(PDO::ATTR_CURSOR => PDO::CURSOR_FWDONLY));
什么是目的PDO::ATTR_CURSOR
和PDO::CURSOR_FWDONLY
这里?
问题2
哪一个,库MySQLi或PDO,你会建议? 利弊?