【发布时间】:2012-10-16 20:10:36
【问题描述】:
这是上一个问题的后续:When to use PDO prepared queries. mysql_real_escape error
我是一个初学者,在查询数据库之前,我在每个 GET 和 POST 变量上都使用了 mysql_real_escape。当我上传到我的主机时,我意识到你不应该将它与 PDO 一起使用。我正在将用户提交数据的所有查询更改为准备好的查询。
我像这样连接到我的数据库:
$hostname = "localhost";
$username = "root";
$password = "root";
try {
$dbh = new PDO("mysql:host=$hostname;dbname=wmpt", $username, $password);
}
catch(PDOException $e)
{
echo $e->getMessage();
}
下面是一个示例查询:
$url = $_GET['q'];
$STH = $dbh->prepare("SELECT qid FROM tblurl WHERE url = :url");
$STH->bindParam(':url', $url);
$STH->setFetchMode(PDO::FETCH_ASSOC);
$urlid = $STH->fetch();
print_r($urlid);
print_r 完全没有输出,我正在使用来自数据库的测试值测试我的 GET 变量。任何想法我做错了什么?我确定我是个白痴,非常感谢您的帮助。
【问题讨论】:
-
@Skrol29 根据the docs 的说法,马特做得对。
标签: mysql pdo prepared-statement