• Apfeltalk ändert einen Teil seiner Allgemeinen Geschäftsbedingungen (AGB), das Löschen von Useraccounts betreffend.
    Näheres könnt Ihr hier nachlesen: AGB-Änderung
  • Es regnet, ist neblig und kalt, alle sind krank und der Chef wird zunehmend cholerisch. Das Thema des Monats ist also folgerichtig --> Das Grau(en)
    Wir sind gespannt, war Euch dazu einfällt! Zum Wettbewerb --> Klick

SQL-UPDATE-String Syntax

Datschi

Reinette de Champagne
Registriert
08.11.04
Beiträge
415
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
 

zeno

Lane's Prinz Albert
Registriert
05.11.05
Beiträge
4.894
Code:
$sql = 'UPDATE $user_table SET session_id="$s_id" WHERE id="'.$user['id'].'"';

gehts so?
 
Zuletzt bearbeitet:

bluba

Bismarckapfel
Registriert
10.06.04
Beiträge
144
mir ist nur aufgefallen, dass um $s_id, die Hochkomma fehlen
Code:
session_id='$s_id'

Gruss Gregor
 

Datschi

Reinette de Champagne
Registriert
08.11.04
Beiträge
415
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!
 

Nogger

Damasonrenette
Registriert
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).
 

mewX

Wohlschmecker aus Vierlanden
Registriert
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ß
 

Skeeve

Pomme d'or
Registriert
26.10.05
Beiträge
3.120
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"
 

mewX

Wohlschmecker aus Vierlanden
Registriert
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 "..
 

Datschi

Reinette de Champagne
Registriert
08.11.04
Beiträge
415
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 ^^
 

Trapper

Meraner
Registriert
12.05.05
Beiträge
232
Gibt es in PHP eigentlich nicht sowas wie Perl? Dort kann man den SQL String mit "prepare" vorbereiten.

Doch, natürlich. Die Technik an sich nennt sich "prepared Statements" und kann beispielsweise mit mysqli_stmt_prepare genutzt werden.
 

Datschi

Reinette de Champagne
Registriert
08.11.04
Beiträge
415
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!
 

Datschi

Reinette de Champagne
Registriert
08.11.04
Beiträge
415
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!
 

mewX

Wohlschmecker aus Vierlanden
Registriert
26.12.06
Beiträge
241
Ja, so is' gut :)

gruß
 

duderino

Prinzenapfel
Registriert
26.01.06
Beiträge
555
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