Kris: Query Anfrage - Variable falsch gewählt ?

Halli Hallo :)

Mein Problem ist folgendes :
Ich möchte eine query Variable setzen um diese später in meine Datenbankabfrage einzusetzen. Wenn ich jedoch die Übergeben $_POST oder eine $_SESSION Variable nehme - meckert PHP mich ständig an :/
Wenn ich hingegen einen Variable nehme funktionierts :/
Ich weiß nicht woran es liegt (kann es mir aber denken) !

Hier das Paradebeispiel :

$query = "SELECT * from ac\_user WHERE name='$_POST['username']'";
oder
$query = "SELECT * from ac\_user WHERE name=$_POST['username']";
oder
$query = "SELECT * from ac\_user WHERE name=/"$_POST['username']/"";
oder
$query = "SELECT * from ac\_user WHERE name='$_POST[username]'";

die funktionieren allesamt nicht (Griff ins Klo scheinbar)

---

das hier wiederrum funktioniert :

$muhbla = $_POST['username'];
$query = "SELECT * from ac\_user WHERE name='$muhbla'";

---

kann mir jemand sagen wo der Hund begraben liegt ... ich komme scheinbar nicht drauf :(

vielen Dank im Vorraus ...

mfg

ein Kris in den Kinderschuhen des PHPs :)

  1. Hi Kris,

    kann mir jemand sagen wo der Hund begraben liegt ... ich komme scheinbar nicht drauf :(

    verknüpfe den String richtig ;)
    $query = "SELECT * from ac\_user WHERE name='".$_POST["username"]."'";

    es gibt auch Alternativen, z.B.
    $query = "SELECT * from ac\_user WHERE name='{$_POST["username"]}'";

    aber ich fand bisher das Trennen des Strings durch einen Punkt in Textteil und Variable plausibel und hübsch.

    Viel Spaß

    ciao
    romy

    --
    DIE ROMY AUS L. AN DER P. SAGT DANKE UND AUF WIEDERSEHEN
    sh:( fo:) rl:( br:> ch:~ n4:& ie:% mo:) va:| de:< zu:| fl:( ss:) ls:[
    1. Hallo,

      kann mir jemand sagen wo der Hund begraben liegt ... ich komme scheinbar nicht drauf :(
      verknüpfe den String richtig ;)
      $query = "SELECT * from ac\_user WHERE name='".$_POST["username"]."'";

      $query = "SELECT * from ac\_user WHERE name='" . $_POST["username"] . "'";

      $query = "SELECT * from ac\_user WHERE name='{$_POST["username"]}'";

      Bitte mysql_real_escape_string verwenden und nicht Formulareingaben ungeprüft übernehmen.

      Beispiel: Gib bei obigem Code den Namen O'Brien ein.
      Weiteres Stichwort: SQL-Injection.

      aber ich fand bisher das Trennen des Strings durch einen Punkt in Textteil und Variable plausibel und hübsch.

      Das gefällt mir auch ganz gut, ich verwende noch lieber Leerzeichen vor und hinter dem Operator. Ich kann das dann besser lesen.

      Und zu Debug-Zwecken:

      echo $query;

      verwenden.

      Freundliche Grüße

      Vinzenz

      1. Hi Vinzenz,

        Bitte mysql_real_escape_string verwenden und nicht Formulareingaben ungeprüft übernehmen.

        ja sicher, ich vergesse immer darauf hinzuweisen, danke.

        Und zu Debug-Zwecken:
          echo $query;

        Full ACK

        ciao
        romy

        --
        DIE ROMY AUS L. AN DER P. SAGT DANKE UND AUF WIEDERSEHEN
        sh:( fo:) rl:( br:> ch:~ n4:& ie:% mo:) va:| de:< zu:| fl:( ss:) ls:[
    2. verknüpfe den String richtig ;)
      $query = "SELECT * from ac\_user WHERE name='".$_POST["username"]."'";

      omg ich hatte es nur mit :

      $query = "SELECT * from ac\_user WHERE name='.$_POST["username"].'";

      probiert ...

      naja ... ist wohl noch zu früh für meine kreative Phase ... danke :)

  2. echo $begrüßung;

    Ich weiß nicht woran es liegt (kann es mir aber denken) !

    Man darf ruhig beim Programmieren denken und kreativ sein, doch bei der Syntax ist man an das gebunden, was die Erfinder der Sprache festgelegt haben.

    die funktionieren allesamt nicht (Griff ins Klo scheinbar)

    Besser wäre ein Griff zum Handbuch, Kapitel Strings, den einen solchen willst du ja zusammensetzen.

    echo "$verabschiedung $name";

    P.S. Mit zwei Stunden Probieren kann man sich 10 Minuten Handbuchlesen sparen.