Mailinglisten-Archive |
Yannik Hampe wrote: > > Christian Wohlgemuth wrote: >> Hallo Liste, >> >> kleine Frage, vielleicht ist dieses Problem bekannt. ich möchte mit >> 'prepare' eine SQL-Query zusammensetzen, aber beim Limit, bekomme ich >> Probleme: >> >> [...] >> $result = $objDb->prepare('SELECT * FROM `profile` WHERE `name` LIKE >> "%?%" OR `kurzbeschreibung` LIKE "%?%" ORDER BY `id` DESC LIMIT ?, ?'); > > Sowas hab ich noch nie versucht ;-). Ich würde entweder die > Prozentzeichen in php ergänzen oder > $result = $objDb->prepare('SELECT * FROM `profile` WHERE `name` LIKE > CONCAT('%',?,'%') OR `kurzbeschreibung` LIKE CONCAT('%',?,'%') ORDER BY > `id` DESC LIMIT ?, ?'); auch wenn ich die ?-Platzhalter durch Andere ersetze, bekomme ich Probleme. Aber wie gesagt, nur bei Limit. $result = $objDb->prepare('SELECT * FROM `profile` WHERE `name` LIKE "%:search1%" OR `kurzbeschreibung` LIKE "%:search2%" ORDER BY `id` DESC LIMIT :start, :ende'); $result->bindvalue(':suche1',$suche, PDO::PARAM_STR); $result->bindvalue(':suche2',$suche, PDO::PARAM_STR); $result->bindvalue(':start',$start, PDO::PARAM_INT); $result->bindvalue(':ende',$ende, PDO::PARAM_INT); $result->execute(); > schreiben. Ich rate einfach mal, dass PDO deine ? in dem String nicht > als Parameterplatzhalter ernst nimmt. Wäre ja auch doof, denn sonst > könnte man da ja keine % als String in einem Query der "prepared" wird > einbringen. > Aber nur um dich schonmal auf die Zukunft vorzubereiten: > http://bugs.php.net/bug.php?id=40740 Diesen Link hatte ich auch gefunden, daher mal eine andere Frage: Seht ihr pdo als einsatzreif? Sollte ich vielleicht noch warten, bist die Geschichte stabil läuft? > >> Vielen Dank >> Christian > > Yannik Christian
php::bar PHP Wiki - Listenarchive