2017-12-19 1 views
0

Ich habe unten Abfrage, die gut funktioniert, wenn die genaue Spalte Wert gegeben, aber wenn als Operator verwendet, kann es keine Zeilen abrufen. Wie% Zeichen auf der unter Abfragemysql like Abfrage funktioniert nicht im Browser

$RegistrationMark = $_GET['RegistrationMark']; 

$qr= mysqli_query($connection, "SELECT * FROM `EarlsdonMSIN_anpr_vega` where `RegistrationMark` like '" %.$RegistrationMark. %"'"); 
+0

Hinweis: Die objektorientierte Schnittstelle zu mysqli ist deutlich weniger ausführlich, was das Lesen und Überwachen von Code erleichtert und nicht leicht mit der veralteten mysql_query-Schnittstelle verwechselt werden kann. Bevor Sie in den prozeduralen Stil investieren, lohnt es sich, umzuschalten. Beispiel: '$ db = new mysqli (...)' und '$ db-> prepare (" ... ")' Die prozedurale Schnittstelle ist ein Artefakt aus der PHP 4-Ära, als die mysqli-API eingeführt wurde und nicht in new verwendet werden sollte Code. – tadman

+0

** WARNUNG **: Wenn Sie 'mysqli' verwenden, sollten Sie [parametrisierte Abfragen] (http://php.net/manual/en/mysqli.quickstart.prepared-statements.php) und [' bind_param'] (http://php.net/manual/en/mysqli-stmt.bind-param.php), um Benutzerdaten zu Ihrer Abfrage hinzuzufügen. ** Verwenden Sie NICHT ** String-Interpolation oder Verkettung, um dies zu erreichen, weil Sie einen schwerwiegenden [SQL injection bug] erstellt haben (http://bobby-tables.com/). ** NIEMALS ** $ _POST ',' $ _GET' oder ** irgendwelche ** Benutzerdaten direkt in eine Abfrage einfügen, es kann sehr schädlich sein, wenn jemand versucht, Ihren Fehler auszunutzen. – tadman

+0

Das '%' ist Teil Ihrer Abfragezeichenfolge, also muss es innerhalb des '' 'sein. – rickdenhaan

Antwort

0

Ihr% Marken sind an der falschen Stelle passieren ...

$qr= mysqli_query($connection, "SELECT * FROM `EarlsdonMSIN_anpr_vega` where `RegistrationMark` like '%" .$RegistrationMark. "%'"); 

Sie sollen mit der Verwendung von verketteten Strings und SQL-Injection-Hacks vorsichtig sein.