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