Rolf B: PHP PDO Bind Parameters Wo sinnvoll?

Beitrag lesen

Hallo MB,

SELECT `WHERE` FROM `GROUP BY` WHERE `SELECT * FROM foo_tab` > 0

Ich vermute der SELECT-Befehl ist sone Art Subquery? Wie in den vergangenen Threads erwähnt hab ich erst DQL und noch nicht DML fertigt und kenne mich in DML nicht aus.

Nein, dieser SELECT beinhaltet eben keinen Subselect. Es war ein Beispiel dafür, wo man Backticks unbedingt braucht. Ein irrsinniger DB-Designer hat eine Table angelegt, deren Name GROUP BY lautet und die eine Spalte SELECT * FROM foo_tab enthält. Das irrsinnigste ist, dass SQL eine Syntax hat, mit der man diesen Design-Irrsinn auch noch realisieren kann: die Backticks. Ein SQL Generator muss jeden Namen eines SQL Objekts in Backticks setzen, weil er durch solchen Irrsinn nicht aus der Bahn geworfen werden darf.

erst DQL und noch nicht DML fertig

Ja und? SELECT ist DQL (data Query language).

getIntFromBool

Kann man machen - geht aber auch ohne eigene Funktion, mit einem doppelten Cast. Casts sind rechts-assoziativ (werden von rechts nach links ausgewertet), d.h. $a wird zuerst in einen bool umgewandelt und dann in einen int, ohne den Overhead eines Funktionsaufrufs:

var_dump((int)(bool)$a);

Rolf

--
sumpsi - posui - clusi