受け取ったエラーに対処するには、 mysql_real_escape_string()
mysql_connect()を介して開いた接続が必要です 。持っていないため、接続しようとして失敗します(matthewのユーザー名を使用) 、PDOがrootに接続しているのに対して )。さらに、できません(または、すべきではありません )mysql_real_escape_string()を組み合わせて組み合わせる およびPDO -それらは異なるライブラリです。
プリペアドステートメントを使用する「いつ」に関して、一般的な経験則は、値がハードコーディングされていない場合です。 LIKE '%hotmail%'の例 準備する必要はありません。ハードコーディングされており、変更されることはありません(もちろん、手動で更新しない限り)。
あらゆる種類の変数を取り込むクエリがある場合は、$_POSTからのデータです。 または$_GET 、または開発者がクエリの10行前に作成した変数の場合は、プリペアドステートメントを使用する必要があります(または、少なくともそれをエスケープして、 PDO ::quote
。