我使用的是標準的mysql_real_escape_string();並且被告知這是安全的,但也被告知,PDO讓所以使用這種下面的腳本更好的安全性:使PDO語句正常工作
代碼:
<?php
$db = new PDO('mysql:host=hostname;dbname=defaultDbName',
'username', 'password',
array(PDO::MYSQL_ATTR_INIT_COMMAND => "SET NAMES utf8"));
$query = 'SELECT * FROM my_table WHERE title = :title';
$stmt = $db->prepare($query);
$stmt->bindValue(':title', $myTitle);
$stmt->execute();
while($row = $stmt->fetch(PDO::FETCH_ASSOC)) {
// ...
}
?>
我的問題:
我是否必須使用$ db而不是僅僅使用include(「config.php」);我可以使用標準格式的配置文件嗎?
如何使用上面的查詢回顯行?我只是簡單地爲$ something = $ row ['title'];在這段時間內{}?
而且,我是這樣做的嗎?
你知道,沒有什麼是安全的。只有知識會使你的代碼安全,而不是你正在使用的功能。 –
大聲笑現在你讓我困惑。我對那些告訴我PDO更安全的人說了同樣的話。但他們發表聲明說,還有其他的東西,mysql_real_escape_string();無法捕獲,並且該PDO自動執行... – AAA
自動?你剛剛改變了'mysql_real_escape_string();'到'$ stmt-> bindValue'。就這樣。 –