私は標準の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']に単純にしますか? while {}内には
そして、私はこれを正しくしていますか?
あなたは知っている、何もそれ自体では安全ではありません。あなたが使用している関数ではなく、知識だけでコードを安全にします。 –
あなたは私を混乱させています。私はPDOがもっと安全だと言った人々に何かを語った。しかし、彼らはmysql_real_escape_string()の他のことがあるという声明を出しました。キャプチャすることはできませんし、PDOは自動的にそれを行います... – AAA
自動的に? 'mysql_real_escape_string();'を '$ stmt-> bindValue'に変更しました。それで全部です。 –