Path: csiph.com!news.swapon.de!fu-berlin.de!uni-berlin.de!individual.net!not-for-mail From: Arno Welzel Newsgroups: de.comp.lang.php Subject: Re: Problem mit PDO Date: Mon, 16 Nov 2015 08:43:26 +0100 Lines: 60 Message-ID: <5649891E.4060409@arnowelzel.de> References: <56479A45.3090901@arnowelzel.de> Mime-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Trace: individual.net AEUV3mJSiR6mmmtDpN0GVQzEl1TTj7SY6ZdjhAYPACTSWsKCFW Cancel-Lock: sha1:NMUkRo0wnki1PcT0OyHOC6faPTc= In-Reply-To: Xref: csiph.com de.comp.lang.php:3560 Peter Müller schrieb am 2015-11-14 um 22:19: > Arno Welzel schrieb am 14.11.2015 um 21:32: >> Peter Müller schrieb am 2015-11-14 um 20:54: >> >>> Hallo, >>> >>> ich arbeite mich gerade mit PDO ein und komme an einem Punkt nicht >>> weiter, ich hoffe ihr könnt mir helfen. Es geht um die Umsetzung dieser >>> SQL-Abfrage: >>> mysql> SELECT min(jahr) as minjahr >>> -> FROM wiealt >>> -> WHERE baldwin > 100000; >>> +---------+ >>> | minjahr | >>> +---------+ >>> | 1950 | >>> +---------+ >>> 1 row in set (0.00 sec) >>> >>> Mein (reduziertes) PDO-Codeschnipsel sieht so aus: >>> >>> $firma = 'baldwin'; >>> $nummer = 100000; >>> $query2 = " >>> SELECT min(jahr) as minjahr >>> FROM wiealt >>> WHERE :firma > :nummer"; >> >> Wieso nicht in einer Zeile? Eine Aufteilung auf mehrere Zeilen sollte >> auch eher so aussehen: >> >> $query2 = "SELECT min(jahr) as minjahr ". >> "FROM wiealt ". >> "WHERE :firma > :nummer"; > > Ist nur übersichtlicher. Es erscheint auch keine notice deswegen, aber > ich kann's natürlich gerne mal mit einer einzeiligen query testen. Ah - Wald und Bäume. Prepared statements sind dafür gedacht, die *Werte* als Parameter zu binden, nicht Spaltennamen. Statt SELECT min(jahr) as minjahr FROM wiealt WHERE :firma > :nummer muss es lauten: SELECT min(jahr) as minjahr FROM wiealt WHERE baldwin > :nummer Und dann eben nur :nummer als Parameter setzen. -- Arno Welzel http://arnowelzel.de http://de-rec-fahrrad.de http://fahrradzukunft.de