Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > de.comp.lang.php > #3559

Re: Problem mit PDO

From Thomas 'PointedEars' Lahn <PointedEars@web.de>
Newsgroups de.comp.lang.php
Subject Re: Problem mit PDO
Date 2015-11-15 21:10 +0100
Organization PointedEars Software (PES)
Message-ID <1738922.5VfiKhCZny@PointedEars.de> (permalink)
References (4 earlier) <n29j1k$705$1@news.albasani.net> <n29s9o$ok1$1@news.albasani.net> <n2a1ql$3a3$1@news.albasani.net> <2514085.4R5y6r8EeQ@PointedEars.de> <n2aint$78q$1@news.albasani.net>

Show all headers | View raw


Peter Müller wrote:

> Thomas 'PointedEars' Lahn schrieb am 15.11.2015 um 15:30:
>> Peter Müller wrote:
>>> Thomas Mlynarczyk schrieb am 15.11.2015 um 13:03:
>>>> Es ist eben nicht dieselbe Abfrage. In $query2 vergleichst Du den
>>>> *String* 'baldwin' mit der Zahl 15, in der Konsole den Wert der
>>>> *Spalte* `baldwin` mit der Zahl 15.
>>>
>>> Das ist das, was ich übersehen hatte. Danke! Da die Arbeit mit den
>>> PDO-Klassen neu für mich ist, hatte ich noch nicht
>>> PDOStatement::bindColumn entdeckt. Das löst das Problem. Ich hatte die
>>> Spaltennamen wie Strings behandelt.
>> 
>> PDOStatement::bindColumn() tut nicht das, was Du anscheinend annimmst:
>> Damit wird _nicht_ der Wert einer Variablen als *Name* einer Spalte in
>> einem Prepared Statement verwendet.
> 
> Das dachte ich in der Tat. Gibt es denn überhaupt diese Möglichkeit?

Ja; zwei Möglichkeiten dafür habe ich beschrieben.

Eine dritte Möglichkeit, die ebenfalls durch eine Datenbank-Klasse abgedeckt 
werden kann (und in meiner Klasse wird), sind durch Anführungszeichen 
begrenzte Zeichenfolgen-Literale (“double-quoted strings”), innerhalb denen 
bei PHP Variableninterpolation stattfinden kann:

<http://php.net/manual/en/language.types.string.php#language.types.string.syntax.double>

Auch da sollte der Spaltenname aber mindestens mit den Mitteln der 
verwendeten Datenbanksprache gequotet werden.  Dies bei Namen, die nicht 
benutzerinjiziert sind, vor allem, damit diese bei Beachtung der Empfehlung, 
dass sie international verständlich, mithin auf Englisch, sein sollten, 
möglichst unabhängig von der Version der Datenbanksprache nicht als 
Schlüsselwörter fehlinterpretiert werden können.  (In der Regel stellt sich 
diese Problematik, wenn überhaupt, jedoch nur für solche Namen, denn die 
Datenbankstruktur sollte für den Benutzer der Applikation nicht direkt 
ersichtlich sein.  Öffentliche Namen sind applikationsintern auf intern 
verwendete zu mappen, um die Darstellung von der Speicherung zu entkoppeln 
und möglichst wenig Möglichkeiten für Angriffe zu bieten.)

> Sonst müsste ich, siehe unten, die DB ändern.

Basierend auf den vorliegenden Fakten solltest Du die DB in jedem Fall 
ändern: <https://de.wikipedia.org/wiki/Normalisierung_(Datenbank)>

> > RTFM: <http://php.net/manual/en/pdostatement.bindcolumn.php>
> 
> Ich kauf mirn Buch. Kein Scherz.

Naturgemäss wird kein Buch über PHP, insbesondere kein deutschsprachiges, 
jemals so aktuell und wenig fehlerbehaftet sein wie das von den an PHP und 
PHP-Projekten Beteiligten im Web veröffentlichte PHP-Handbuch, insbesondere 
wie seine originale englischsprachige Version.

-- 
PointedEars
Zend Certified PHP Engineer
Twitter: @PointedEars2
Please do not cc me. / Bitte keine Kopien per E-Mail.

Back to de.comp.lang.php | Previous | NextPrevious in thread | Next in thread | Find similar


Thread

Problem mit PDO Peter Müller <peter.mueller@c-major.de> - 2015-11-14 20:54 +0100
  Re: Problem mit PDO Arno Welzel <usenet@arnowelzel.de> - 2015-11-14 21:32 +0100
    Re: Problem mit PDO Peter Müller <peter.mueller@c-major.de> - 2015-11-14 22:19 +0100
      Re: Problem mit PDO Markus Grob <snoopy@ilnet.ch> - 2015-11-14 23:41 +0100
        Re: Problem mit PDO Peter Müller <peter.mueller@c-major.de> - 2015-11-15 10:25 +0100
          Re: Problem mit PDO Thomas Mlynarczyk <thomas@mlynarczyk-webdesign.de> - 2015-11-15 12:42 +0100
          Re: Problem mit PDO Thomas Mlynarczyk <thomas@mlynarczyk-webdesign.de> - 2015-11-15 13:03 +0100
            Re: Problem mit PDO Thomas 'PointedEars' Lahn <PointedEars@web.de> - 2015-11-15 14:26 +0100
              Re: Problem mit PDO Thomas Mlynarczyk <thomas@mlynarczyk-webdesign.de> - 2015-11-15 16:32 +0100
            Re: Problem mit PDO Peter Müller <peter.mueller@c-major.de> - 2015-11-15 14:37 +0100
              Re: Problem mit PDO Thomas 'PointedEars' Lahn <PointedEars@web.de> - 2015-11-15 15:30 +0100
                Re: Problem mit PDO Peter Müller <peter.mueller@c-major.de> - 2015-11-15 19:26 +0100
                Re: Problem mit PDO Thomas 'PointedEars' Lahn <PointedEars@web.de> - 2015-11-15 21:10 +0100
          Re: Problem mit PDO Thomas 'PointedEars' Lahn <PointedEars@web.de> - 2015-11-15 14:23 +0100
            Re: Problem mit PDO Peter Müller <peter.mueller@c-major.de> - 2015-11-15 14:39 +0100
      Re: Problem mit PDO Arno Welzel <usenet@arnowelzel.de> - 2015-11-16 08:43 +0100
        Re: Problem mit PDO Peter Müller <peter.mueller@c-major.de> - 2015-11-16 21:23 +0100
    Re: Problem mit PDO Thomas Mlynarczyk <thomas@mlynarczyk-webdesign.de> - 2015-11-15 13:09 +0100
      Re: Problem mit PDO Markus Grob <snoopy@ilnet.ch> - 2015-11-17 09:48 +0100
        Re: Problem mit PDO Thomas 'PointedEars' Lahn <PointedEars@web.de> - 2015-11-17 20:13 +0100
          Re: Problem mit PDO Stefan+Usenet@Froehlich.Priv.at (Stefan Froehlich) - 2015-11-17 22:09 +0000
          Re: Problem mit PDO Markus Grob <snoopy@ilnet.ch> - 2015-11-20 21:59 +0100

csiph-web