Beim Einfügen von Namen in eine Kundendatenbank habe ich die MySQLi-Funktion real_escape_string verwendet, um die Daten zu bereinigen. Beispiel für einen Eintrag mit einem einfachen Anführungszeichen sieht nun wie folgt aus:Abfrage nach gesäuberten einfachen Anführungszeichen in der MySQL-Datenbank.
Baker\'s Pharmacy
aber wenn ich versuche, für den Namen abfragen mit einer Abfrage wie:
$search = "Baker's Pharmacy";
$searchName = $db->real_escape_string($search);
$query = "SELECT Name FROM Customers WHERE Name = '$searchName'";
ich keine Treffer zurückgeben, was die richtige ist Möglichkeit, nach einfachen Anführungszeichen zu suchen?
Jede Hilfe wird sehr geschätzt!
versuchen '$ search =" Bäcker \ 's Apotheke ";' und nicht 'real_escape_string' – JustOnUnderMillions
Die * korrekte * Weg wäre, die tatsächlichen Daten und nicht eine modifizierte Version der Daten zu speichern, und suchen die tatsächlichen Daten, nach denen Sie suchen. Sie sollten Abfrageparameter verwenden, um Eingaben als Werte zu behandeln, anstatt Eingaben manuell zu bereinigen, bevor sie als Code ausgeführt werden. – David
Es sollte "Baker's Pharmacy" ohne Schrägstriche sein. Es scheint, dass Sie Ihre Daten zweimal entkamen. –