Ronald: Quotes, ich werd' verrückt!

Hi,

$query = "select * from table where ID=$ID";

Warum zum Kuckuk gaht das Ding manchmal so durch und ein anderes Mal nur so:

$query = "select * from table where ID="$ID"";

und wieder ein anderes Mal gar nicht?

Ist php etwa nicht ganz dicht? ;-)

Gibt es eine Möglichkeit, die immer funktioniert? Und warum macht php da anscheined irgendwelche Unterschiede, die mir leider nichht zugänglich sind?

Grüße, Ronald

  1. Moin!
    mach es so:

    $query = "select * from table where ID=".$ID;

    tschüss ichen

    --
    Selfcode: sh:( fo:| br: n4:& ie:% mo:| mo:| de:] zu:) fl:| ss:| ls:[ js:|
  2. Moin Roland,

    Warum zum Kuckuk gaht das Ding manchmal so durch und ein anderes Mal nur so:

    $query = "select * from table where ID="$ID"";

    Ist das Feld ID nummerisch oder char?

    Grüsse
    Mike

    --
    Freunde kommen und gehen. Feinde sammeln sich an.
  3. Moin!

    $query = "select * from table where ID=$ID";

    Warum zum Kuckuk gaht das Ding manchmal so durch und ein anderes Mal nur so:

    $query = "select * from table where ID="$ID"";

    Es ist kein Fehler, auch numerische Feldinhalte IMMER in Anführungszeichen zu setzen. Außerdem sollten sämtliche Daten, die in Variablen stecken und an die DB geschickt werden, immer escapet werden. Im Falle von MySQL wäre dafür die Funktion mysql_escape_string() zu benutzen.

    und wieder ein anderes Mal gar nicht?

    Werde konkret: Liefere sowohl die exakte Fehlermeldung bzw. Fehlerbeschreibung, als auch den beteiligten Code und (ganz wichtig!) die erzeugte, fertige SQL-Anweisung, die an die DB geschickt wird (da sollte ein "echo $query" ausreichen).

    Ach ja: Die Fehlermeldung der DB gehört natürlich auch dazu. mysql_error() hilft.

    Gibt es eine Möglichkeit, die immer funktioniert? Und warum macht php da anscheined irgendwelche Unterschiede, die mir leider nichht zugänglich sind?

    Ich bin fest der Meinung, deine jeweils benutzten Daten sind in jedem einzelnen Fall unterschiedlich. Die korrekte Methode ist, immer (auch bei Zahlenfeldern) einfache Anführungszeichen zu verwenden und die Variablen immer zu escapen.

    - Sven Rautenberg

  4. ohne Text

    Web    Bilder    Groups    Verzeichnis    News

    Erweiterte Suche
      Einstellungen
      Sprachtools
    Suche:  Das Web Seiten auf DeutschSeiten aus Deutschland

    Werbung - Google Toolbar - Alles über Google - Google.com in English

    ©2004 Google - Suche auf 4,285,199,774 Web-Seiten