カスタマーデータベースに名前を挿入するとき、私はreal_escape_stringというMySQLi関数を使ってデータをサニタイズしました。単一引用符で例のエントリは次のようになります。MySQLデータベースのサニタイズされた一重引用符を照会します。
Baker\'s Pharmacy
私のようなクエリを使用して名前を照会しようとすると、しかし:
$search = "Baker's Pharmacy";
$searchName = $db->real_escape_string($search);
$query = "SELECT Name FROM Customers WHERE Name = '$searchName'";
私はマッチを返さない、正しいものをsantised single quotesを検索する方法は?
ご協力いただきありがとうございます。
「$ search = "Baker \\\" s Pharmacy」;と 'real_escape_string'を使用しない – JustOnUnderMillions
*正しい*方法は、データの変更されたバージョンではなく実際のデータを保存することです。あなたが探している実際のデータコードとして実行する前に、手動で入力をサニタイズする代わりに、クエリパラメータを使用して入力を値として扱う必要があります。 – David
スラッシュのない「Baker's Pharmacy」でなければなりません。あなたはあなたのデータを2回エスケープしたようです。 –