Mailinglisten-Archive |
Hi! > > $query = 'SELECT * FROM '.$entries.' WHERE cat LIKE BINARY > > "%'.mysql_escape_string($_GET[cat]).'%" ORDER BY id DESC'; Besser: $query = 'SELECT * FROM '.$entries.' WHERE cat LIKE BINARY "%'.mysql_escape_string($_GET['cat']).'%" ORDER BY id DESC'; (mit ' um das cat) Grund: Ohne die Anführungszeichen wird cat als konstante erkannt, die allerdings keinen Wert hat und deshalb ihren Namen zurückgibt - im Normallfall also alles ok. Wenn du jetzt aber irgendwann mal eine Konstante mit dem Namen cat in dein Script einbaust oder die PHP-Programmierer vieleicht mal ne entsprechende Konstante vorsehen, dann hat cat auf einmal einen ganz anderen Wert und dein Script wird nicht mehr funktionieren. Beispiel: define('cat', 'foo'); $query = 'SELECT * FROM '.$entries.' WHERE cat LIKE BINARY "%'.mysql_escape_string($_GET[cat]).'%" ORDER BY id DESC'; Der tatsächliche Query lautet nun: 'SELECT * FROM '.$entries.' WHERE cat LIKE BINARY "%'.mysql_escape_string($_GET['foo']).'%" ORDER BY id DESC'; cu, Roland Tapken -- Please reply to: tapken_(at)_engter.de PGP Public Key: http://www.engter.de/~tapkenea/gnupg_roland.txt ~~~ I'm a signature-virus. Please copy me into your sig. ~~~
php::bar PHP Wiki - Listenarchive