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