Ich benutze PHP und MySQL mit PDO. Manchmal muss ich eine Anweisung mit einer Variablen (Platzhalter) vorbereiten, die mehrmals in dieser Abfrage verwendet wird.Warum PDO mehrere Platzhalter mit demselben Namen nicht zulassen?
Beispiel:
SELECT * FROM messages WHERE from_id = :user OR to_id = :user
Allerdings, wenn ich versuche, diese Aussage bereite ich einen Fehler haben, damit ich dies wie dies in einer Weise tun müssen, um:
SELECT * FROM messages WHERE from_id = :user1 OR to_id = :user2
diese Aussage zu nennen, Ich brauche ein Array wie folgt:
array('user1'=>$user_id, 'user2'=>$user_id);
Es sieht so dumm für mich! Warum erlaubt mir MySQL (PDO?) Nicht, einen Platzhalter mehr als einmal zu verwenden und mich dazu zu zwingen, zusätzliche Variablen zu verwenden, die mehr Kontrolle erfordern ?!
Dies kann einfach gehandhabt werden, wenn die Abfrage relativ einfach ist (wie ich oben gepostet habe), aber jetzt habe ich eine Abfrage mit 5 (!!!) Verwendungen der einzelnen Variablen erstellt. Jedes Mal, wenn ich den Platzhalter hinzufüge, muss ich den Code an vielen Stellen überprüfen, um es in Ordnung zu bringen.
Gibt es eine Einstellung oder eine Optimierung, um dies zu umgehen?
Danke, YCS! Ich sollte besser emulieren verwenden, da es für vorbereitende Anweisungen langsamer ausgeführt werden sollte. Recht? –
Nun, der Emulationsmodus ist eigentlich * schneller *, aber ich würde nicht sagen, dass der Unterschied signifikant ist. Der Link oben ist zu meinem Artikel, wo ich alle Vor-und Nachteile für die jeder Modus –
Faster diskutieren ?! Wow, unerwartete Sache ... In diesem Fall werde ich gehen und eine Lesung darüber finden ... Danke! –