Hallo,
ich habe ein Perlscript auf meinem Webspace.
Dieses Script sucht in einer MySQL Datenbank nach überinstimmungen mit einem String, welcher vorher in ein Formularfeld eingegeben wird, mit Inhalten aus einer MySQL Datenbank.
Der "Vergleich" sieht so aus:
[...]
$search=$dbh->quote($search) or die $DBI::errstr;
$cmd="select id,begr from $lang where erkl REGEXP $search or begr REGEXP $search;";
$sth=$dbh->prepare($cmd) or die $DBI::errstr;
$sth->execute or die $DBI::errstr;
[...]
Dies funktioniert auch alles wunderbar, solange ich in das Formularfeld kein + und kein ? eingebe.
Gebe ich eines der Beiden Zeichen ein, bekomme ich folgende Fehlermeldung:
Content-type: text/plain WARN: DBD::mysql::st execute failed: Got error 'repetition-operator operand invalid' from regexp at /pfad/htdocs/cgi-bin/script.cgi line 82. Content-type: text/plain FATAL ERROR: Got error 'repetition-operator operand invalid' from regexp at /pfad/htdocs/cgi-bin/script.cgi on line 82.
Line 82 ist in diesem Fall folgende Zeile:
$sth->execute or die $DBI::errstr;
Frage: Wie kann ich dieses Problem beheben?
Vielen Dank für Euere Hilfe
Maresa P