mru: MySQL SELECT * FROM * WHERE ...= php Variable

Hallo,

in einer SQL Abfrage muss ich als Bedingung den Wert aus einer PHP Variable nehmen. Ich weiß leider nicht wie man das Syntaxmäßig richtig einstellt.

Schaut jetzt so aus:

"SELECT UserID, UserName, Sex, VName, NName, UserMail, rights, visits FROM users WHERE UserID = $id"

Was natürlich nicht passt, vielleicht könnt ihr mir die richtige Syntax nennen.

  1. Hi,

    "SELECT UserID, UserName, Sex, VName, NName, UserMail, rights, visits FROM users WHERE UserID = $id"
    Was natürlich nicht passt, vielleicht könnt ihr mir die richtige Syntax nennen.

    wieso ist das natürlich? Im Prinzip ist das die richtige Syntax, sofern dieser String so von PHP verarbeitet wird, wo liegt dein Problem?

    MfG
    Rouven

    --
    -------------------
    Let Bygones Be Bygones  --  Robert Pitscottie: "Chronicles of Scotland"
    1. Hi,

      "SELECT UserID, UserName, Sex, VName, NName, UserMail, rights, visits FROM users WHERE UserID = $id"
      Was natürlich nicht passt, vielleicht könnt ihr mir die richtige Syntax nennen.
      wieso ist das natürlich? Im Prinzip ist das die richtige Syntax, sofern dieser String so von PHP verarbeitet wird, wo liegt dein Problem?

      MfG
      Rouven

      Mein Problem ist, dass die Variable $id richtig geschrieben wird, aber die SQL Abfrage ohne Ergebnis bleibt.

      D.h. die Bedingung (also die Variable) wird falsch interpretiert, wenn überhaupt.

      1. hi,

        Mein Problem ist, dass die Variable $id richtig geschrieben wird, aber die SQL Abfrage ohne Ergebnis bleibt.

        Dann lasse dir die generierte Query zur Kontrolle ausgeben, und teste sie bspw. in phpMyAdmin.
        Und nutze mysql_error().

        D.h. die Bedingung (also die Variable) wird falsch interpretiert, wenn überhaupt.

        Ja was denn jetzt, richtig, aber doch falsch?

        gruß,
        wahsaga

        --
        /voodoo.css:
        #GeorgeWBush { position:absolute; bottom:-6ft; }
        1. Sorry Jungs,
          der Fehler lag an anderer Stelle, nämlich bei der Ausgabe.

          Thx.

      2. Moin!

        "SELECT UserID, UserName, Sex, VName, NName, UserMail, rights, visits FROM users WHERE UserID = $id"
        Mein Problem ist, dass die Variable $id richtig geschrieben wird, aber die SQL Abfrage ohne Ergebnis bleibt.

        Es ist immer eine gute Idee (man könnte sogar sagen: Nahezu immer zwingend erforderlich), die Inhalte von Variablen im SQL-String in einfache Anführungszeichen zu setzen, damit SQL keine Probleme mit Sonderzeichen und Leerzeichen kriegt.

        Unbedingt erforderlich ist aber, dass der Inhalt von $id passend escaped wird. Siehe http://www.php.net/mysql-real-escape-string.

        - Sven Rautenberg

        --
        "Love your nation - respect the others."
  2. Hi,

    in einer SQL Abfrage muss ich als Bedingung den Wert aus einer PHP Variable nehmen. Ich weiß leider nicht wie man das Syntaxmäßig richtig einstellt.

    ein SQL-Statement ist ein String. Ein Zusammenhang zu PHP existiert nicht - auch dann nicht, wenn Du diesen String mit PHP generierst.

    "SELECT UserID, UserName, Sex, VName, NName, UserMail, rights, visits FROM users WHERE UserID = $id"
    Was natürlich nicht passt,

    Das ist absolut nicht natürlich, sondern hängt davon ab, was in $id steht.

    vielleicht könnt ihr mir die richtige Syntax nennen.

    Die richtige SQL-Syntax erfährst Du in der Dokumentation Deines DBMS. Sie ist frei von jedwedem PHP-Code. Die richtige PHP-Syntax, um diese SQL-Syntax zu erzeugen, erfährst Du in der PHP-Dokumentation. Sie ist unabhängig von jedwedem SQL.

    Cheatah

    --
    X-Self-Code: sh:( fo:} ch:~ rl:° br:> n4:& ie:% mo:) va:) de:] zu:) fl:{ ss:) ls:~ js:|
    X-Self-Code-Url: http://emmanuel.dammerer.at/selfcode.html
    X-Will-Answer-Email: No
    X-Please-Search-Archive-First: Absolutely Yes
  3. Und so(?):

    "SELECT UserID, UserName, Sex, VName, NName, UserMail, rights, visits FROM users WHERE UserID = ".$id." "

    1. Und so(?):

      "SELECT UserID, UserName, Sex, VName, NName, UserMail, rights, visits FROM users WHERE UserID = ".$id." "

      Ja, so haut es auch hin. Aber auch auf meine einfache Weise. Das Problem lag bei der Ausgabe der selectierten Daten. War mein Fehler, viel mir dann bei näherer Betrachtung auf.

      Thx.