Was ist der beste Weg, um Benutzereingaben für reguläre Ausdrücke in MySQL zu umgehen?

Ich möchte Benutzereingaben, die als $ dangerous_string bezeichnet werden, als Teil eines RegEx in einer MySQL-Abfrage verwenden.

Was ist der beste Weg, dies zu tun? Ich möchte die Zeichenfolge des Benutzers als Literal verwenden. Wenn Zeichen enthalten sind, die in MySQL RegEx eine Bedeutung haben, sollten diese Zeichen meinen regulären Ausdruck nicht beeinflussen.

$dangerous_string = $_GET["string"];
//do something here
$dangerous_string = what_goes_here($dangerous_string);
$sql = "SELECT * FROM table WHERE search_column REGEX '" . $mysqli->real_escape_string("[[:<:]]$dangerous_string") . "'";

//etc....

Antworten auf die Frage(6)

Ihre Antwort auf die Frage