Andy: MYSQL,Variable in Selectabfrage einfügen

In meiner Datentabelle gibt es die Spalte
a_name
b_name
c_name
d_name

in meiner Anfrage brauche ich aber immer nur eine davon.
Die die ich brauche ist in der VAR $i gepeichert:

Beispiel

$i = 'a';

Nun würde ich gerne diese Variable in meiner SELECT Abfrage einfügen:

Beipiel:

$sql = "SELECT id, ".$a."_name FROM table"

Kann mir bitte wer eine Hilfestellung geben?

Danke

Andy

  1. Tach!

    Kann mir bitte wer eine Hilfestellung geben?

    Wobei konkret?

    error_reporting auf E_ALL (und display_errors auf on) stellen, hilft PHPs leises Gejammer nicht zu überhören, was hilfreich ist, um auf Zugriffe nicht existenter Variablen hingewiesen zu werden.

    Weiterhin sind Kontrollausgaben aller beteiligten Variablen sinnvoll, um einem Fehler auf die Spur zu kommen. Ansonsten kann man als Außenstehender nur das offensichtliche sehen.

    in meiner Anfrage brauche ich aber immer nur eine davon.
    Die die ich brauche ist in der VAR $i gepeichert:
    Nun würde ich gerne diese Variable in meiner SELECT Abfrage einfügen:
    $sql = "SELECT id, ".$a."_name FROM table"

    $a ist nicht $i.

    Beachte auch, wenn der Inhalt von $i nicht zweifelsfrei nur die vorgesehenen Werte annehmen kann, solltest du, um SQL-Injection zu verhindern, den Feldnamen noch mit Backticks einrahmen und in potentiell in $i stehende Backticks verdoppeln. Siehe Regeln für Identifier.

    dedlfix.

    1. $a ist nicht $i.

      Du hast natürlich recht!

      $sql =  "SELECT id, ".$i."_name FROM table"

      Parse error: syntax error, unexpected ''.$i.'' (T_CONSTANT_ENCAPSED_STRING) in

      und das ist die Fehlermeldung!

      Andy

      1. Tach!

        $sql =  "SELECT id, ".$i."_name FROM table"
        Parse error: syntax error, unexpected ''.$i.'' (T_CONSTANT_ENCAPSED_STRING) in
        und das ist die Fehlermeldung!

        Die Ursache kann ich aus dem gezeigten Codestück nicht erkennen. Vermutlich fehlt irgendwo vorher etwas.

        dedlfix.