這是從以前的問題進行後續:When to use PDO prepared queries. mysql_real_escape errorPDO準備查詢返回任何
林總的初學者和使用上mysql_real_escape每個GET和我問我的數據庫之前,POST變量。當我上傳到我的主機時,我意識到你不應該在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變量,測試值DB。任何想法我做錯了什麼?我相信我是個白癡,非常感謝幫助。
bindParam('url',$ url) – Skrol29
'$ url'是一個字符串嗎? – SomeKittens
@ Skrol29根據[文檔](http://php.net/manual/en/pdostatement.bindparam.php),馬特做的是正確的。 – SomeKittens