Auge: Frage zum Wiki-Artikel „PHP MySQL API“

Beitrag lesen

problematische Seite

Hallo

Characters encoded are NUL (ASCII 0), \n, \r, , ', ", and Control-Z.

Die folgende Query erwartet einen numerischen Parameter (als PHP-String mit string parsing):

Da ist schon der Denkfehler. Warum sollte man Zahlen („numerischer Parameter“) mit einer Stringfunktion (mysqli_real_escape_string) behandeln?

   $sql = "select foo,bar from atable where key=$keyValue"

Behandle die Variable ihrem Typ entsprechend …

   $sql = "select foo,bar from atable where key= " . intval($keyValue); // ich nehme eine Ganzzahl an

… und dieses Problem löst sich in Luft auf.

mysqli_real_escape_string ist keine Kanone, die Splittergranaten verschießt, die alles treffen (auch Spatzen). Es ist ein Scharfschützengewehr, mit dem man auf Zeichenketten schießt (nur Spatzen).

Tschö, Auge

--
Wo wir Mängel selbst aufdecken, kann sich kein Gegner einnisten.
Wolfgang Schneidewind *prust*