Escape-String zur Verwendung in der MySQL-Volltextsuche

8

Ich benutze Laravel 4 und habe die folgende Abfrage eingerichtet:

%Vor%

Diese Abfrage ist bei normaler Verwendung problemlos ausführbar. Wenn der Benutzer jedoch eine Zeichenfolge wie ++ eingibt, wird ein Fehler ausgelöst. Bei den MySQl-Dokumenten gibt es einige Keywords, z. B. + . und - , die bestimmte Zwecke haben. Gibt es eine Funktion, die diese Art von Sonderzeichen aus einer Zeichenfolge entzieht, so dass es in einer Volltextsuche wie oben verwendet werden kann, ohne irgendwelche Fehler zu werfen?

Hier ist ein Beispiel für einen Fehler, der ausgelöst wird:

%Vor%

Lösungen, die ich ausprobiert habe:

%Vor%

Ich gehe davon aus, dass ich Regex verwenden muss. Was ist der beste Ansatz hier?

    
chipit24 22.10.2014, 12:06
quelle

1 Antwort

32
___ tag123mysql ___ MySQL ist ein freies, relationales Datenbank-Managementsystem (RDBMS), das die strukturierte Abfragesprache (SQL) verwendet. Verwenden Sie dieses Tag NICHT für andere DBs wie SQL Server, SQLite usw. Dies sind verschiedene DBs, die alle SQL verwenden, um die Daten zu verwalten. ___ tag123fulltextsearch ___ Bei der Volltextsuche werden Dokumente gesucht, die normalerweise unstrukturierten Text enthalten, im Gegensatz zu Textfeldern in einer strukturierten Datenbank. ___ qstnhdr ___ Escape-String zur Verwendung in der MySQL-Volltextsuche ___ qstntxt ___

Ich benutze Laravel 4 und habe die folgende Abfrage eingerichtet:

%Vor%

Diese Abfrage ist bei normaler Verwendung problemlos ausführbar. Wenn der Benutzer jedoch eine Zeichenfolge wie + eingibt, wird ein Fehler ausgelöst. Bei den MySQl-Dokumenten gibt es einige Keywords, z. B. - . und > < , die bestimmte Zwecke haben. Gibt es eine Funktion, die diese Art von Sonderzeichen aus einer Zeichenfolge entzieht, so dass es in einer Volltextsuche wie oben verwendet werden kann, ohne irgendwelche Fehler zu werfen?

Hier ist ein Beispiel für einen Fehler, der ausgelöst wird:

%Vor%

Lösungen, die ich ausprobiert habe:

%Vor%

Ich gehe davon aus, dass ich Regex verwenden muss. Was ist der beste Ansatz hier?

    
___ tag123laravel4 ___ Laravel 4.2 ist die Vorgängerversion des von Taylor Otwell entwickelten Open-Source-PHP-Webentwicklungs-MVC-Frameworks. Laravel hilft Ihnen beim Erstellen von Anwendungen mit einer einfachen, aussagekräftigen Syntax. ___
Rimas 23.10.2014, 21:05
quelle