データベースは、次の例のように、準備ステートメントを使用した SQL インジェクションに対して依然として脆弱ですか (私は PDO と php バージョン 5.3 を使用しています):
$unsafe = $_POST['user_input'];
$stmt = $db->prepare("INSERT INTO table (column) VALUES ('" . $unsafe . "')");
2つの例に言及する価値のある違いはありますか?
$stmt = $db->prepare('SELECT * FROM table WHERE name = :name');
$stmt->execute(array(':name' => $name));
と
$stmt = $db->prepare('SELECT * FROM table WHERE name = :name');
$stmt->bind_param(':name', $name);
$stmt->execute();
メソッドの実行で使用できるパラメーターの種類は何ですか?