1. Diese Seite verwendet Cookies. Wenn du dich weiterhin auf dieser Seite aufhältst, akzeptierst du unseren Einsatz von Cookies. Weitere Informationen

SQL-UPDATE-String Syntax

Dieses Thema im Forum "Web-Programmierung" wurde erstellt von Datschi, 06.02.07.

  1. Datschi

    Datschi Reinette de Champagne

    Dabei seit:
    08.11.04
    Beiträge:
    417
    Hi Ihr.
    Ich mal wieder. Hab nen Problem mit nem simpelen Update-SQL-String in PHP.
    Sieht jetzt so aus, will aber nicht funktionieren:
    Code:
    $sql = "UPDATE $user_table SET session_id=$s_id WHERE id='".$user['id']."'";
    Die dazugehörige Fehlerausgabe ist diese:
    Code:
    You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'SET session_id=345785 WHERE id='1'' at line 1
    Ich hoffe, euch fällt der Fehler auf.
    Andere Strings, die ich in dieser Syntax verfasst habe, funktionieren.
    Aber vielleicht ist der Fehler ja auch völlig trivial und ich seh den Wald vor lauter Bäumen nicht...:eek:

    Danke schonmal!

    Der Datschi
     
  2. zeno

    zeno Lane's Prinz Albert

    Dabei seit:
    05.11.05
    Beiträge:
    4.898
    Code:
    $sql = 'UPDATE $user_table SET session_id="$s_id" WHERE id="'.$user['id'].'"';
    
    gehts so?
     
    #2 zeno, 06.02.07
    Zuletzt bearbeitet: 06.02.07
  3. bluba

    bluba Bismarckapfel

    Dabei seit:
    10.06.04
    Beiträge:
    144
    mir ist nur aufgefallen, dass um $s_id, die Hochkomma fehlen
    Code:
    session_id='$s_id' 
    
    Gruss Gregor
     
  4. Datschi

    Datschi Reinette de Champagne

    Dabei seit:
    08.11.04
    Beiträge:
    417
    Kann ich jetzt nicht überprüfen. Bin nicht mehr auf Arbeit.
    Mach ich aber morgen und sag dann bescheid.

    Danke erstmal für die Idee!
     
  5. Nogger

    Nogger Damasonrenette

    Dabei seit:
    05.11.05
    Beiträge:
    494
    Ich würde sagen $user_table ist ein leerer String. Bei solchen Fehlern ist es immer gut, sich die komplette Abfrage anzeigen zu lassen. Hier: print($sql).
     
  6. mewX

    mewX Wohlschmecker aus Vierlanden

    Dabei seit:
    26.12.06
    Beiträge:
    241
    Stimm eigentlich, ich denke Nogger hat Recht....
    Und wenn du's ganz korrekt haben willst (aber wozu? ;)) dann so:

    $sql = "UPDATE `$user_table` SET `session_id` = '$s_id' WHERE `id` = '".$user['id']."'";

    gruß
     
  7. Skeeve

    Skeeve Pomme d'or

    Dabei seit:
    26.10.05
    Beiträge:
    3.121
    Gibt es in PHP eigentlich nicht sowas wie Perl? Dort kann man den SQL String mit "prepare" vorbereiten. Dabei werden Platzhalter gesetzt, die dann beim Aufruf ersetzt werden. Dabei geht man dan sicher, daß Sonderzeichen in den eingestzten Werten keine Probleme verursachen. Was ist in diesem Beispiel zu erwarten, wenn $s_id einen wer hat, der ein ' enthält. Zum Beispiel $s_id= "123', spaltenname='andererwert"
     
  8. mewX

    mewX Wohlschmecker aus Vierlanden

    Dabei seit:
    26.12.06
    Beiträge:
    241
    Nicht direkt (bzw. ich kenne sowas nicht^^), aber es gibt z.B. die Funktion addslashes($wert), das maskiert evnetuelle ' oder "..
     
  9. Datschi

    Datschi Reinette de Champagne

    Dabei seit:
    08.11.04
    Beiträge:
    417
    Whoa, so viele Antworten.
    Ich merke immer wieder, wie Klasse das hier ist.
    Eigentlich dürfte aber $user_table ist ziemlich sicher nicht leer.
    Werd ich aber überprüfen. Morgen früh um 9 gibts weitere Infos ob einer eurer Tips
    geholfen hat. Irgendwie macht SQL mit PHP keinen Spaß :D

    Naja...bis morgen dann ^^
     
  10. Trapper

    Trapper Boskop

    Dabei seit:
    12.05.05
    Beiträge:
    213
    Doch, natürlich. Die Technik an sich nennt sich "prepared Statements" und kann beispielsweise mit mysqli_stmt_prepare genutzt werden.
     
  11. Datschi

    Datschi Reinette de Champagne

    Dabei seit:
    08.11.04
    Beiträge:
    417
    oh mann! Also, $user_table war tatsächlich leer. Ihr glaubt gar nicht, wie doof man manchmal sein kann. Naja...musste ne Menge umbauen, bin aber wieder an dem SQL String. Ma sehn, ob jetzt einer eurer Vorschläge klappt!
     
  12. Datschi

    Datschi Reinette de Champagne

    Dabei seit:
    08.11.04
    Beiträge:
    417
    ok! Problem gelöst:
    String sieht jetzt so aus:

    Code:
    $sql = "UPDATE $user_table SET session_id='".$s_id."' WHERE id='".$user['id']."'";
    Danke für eure Hilfe!
     
  13. mewX

    mewX Wohlschmecker aus Vierlanden

    Dabei seit:
    26.12.06
    Beiträge:
    241
    Ja, so is' gut :)

    gruß
     
  14. duderino

    duderino Goldparmäne

    Dabei seit:
    26.01.06
    Beiträge:
    556
    Noch ein kleiner Tipp: Wenn du weißt dass in die Spalte eine Zahl eingetragen wird, kannst du dir das Hochkomma sparen. Nur wenn ein Textstring ankommen soll muss das Hochkomma verwendet werden.

    Grüße
    duderino
     

Diese Seite empfehlen