Problem mit sqlabfrage

Spieleguru

Mitglied
hi, ich habe ein problem mit einer sql-abfrage:

PHP:
$sql = "INSERT INTO users VALUES (NULL, '$nick', '$passwort1', '$email', NOW())";
$sqlId = "SELECT @UserId := LAST_INSERT_ID()";
$sql2 = "INSERT INTO users_data VALUES (NULL, @UserId, '$firmenname', '$firmensitz')";

$result1 = mysql_query ($sql);
if(!$result1){
 /* header ("Location: index.php?page=regi"); */
 } 
 if(mysql_errno()){
 die("<br>" . mysql_errno().": ".mysql_error()."<br>");
 }
$result2 = mysql_query ($sqlId);
if(!$result2){
 /* header ("Location: index.php?page=regi"); */
 } 
 if(mysql_errno()){
 die("<br>" . mysql_errno().": ".mysql_error()."<br>");
 }
$result3 = mysql_query ($sql2); 
if(!$result3){
 /* header ("Location: index.php?page=regi"); */
 }
 if(mysql_errno()){
 die("<br>" . mysql_errno().": ".mysql_error()."<br>");
 }

bei der sqlabfrage der variablen $sql funkt etwas net... er sagt immer wieder falsche syntax
hoffe ihr könnt mir helfen...

hab grad leider net viel mehr zeit...
 
Zuletzt bearbeitet:
wo siehst du da was? ich seh da nix...außerdem sagt mysql ja das das an der syntax liegt...
klammern sind meiner meinung alle richtig..

edit: warum wurde mein theard verschoben? es hat ja auch was mit php zu tun... naja, egal... hauptsache mir hilft zuimindest einer :)
 
Zuletzt bearbeitet:
Schau dir die Abfrage doch mal etwas genauer an:
Code:
INSERT INTO users VALUES (NULL, $nick, $passwort1, $email, NOW()
Zudem: Welche Werte enthalten $nick, $passwort1 und $email und woher kommen diese?
 
oh... oh..

ich saß da glaub ich 3h dran und hab des net gemerkt...
großes danke

//edit: zuerst dacht ich, das wärs... war es aber nicht! folgende fehlermeldung: 1136: Column count doesn't match value count at row 1
 
Zuletzt bearbeitet:
Ist die Fehlermeldung nicht selbsterklärend? Die Anzahl der angegebenen Wert stimmt nicht mit der Anzahl der Spalten überein.
 
Schreib mal die INSERTs so:
Code:
INSERT INTO
Tabellen_Name
(Spalte1, Spalte2, ... )
VALUES
(Inhalt-für-Spalte1, Inhalt-für-Spalte2, ...)

Um sicher zu stellen, dass jede Value in die vorgesehene Spalte kommt...
Der Fehler dürfte sich damit auch erledigen, da SQL dann weiß, welche Spalten gefüllt werden und geht nicht davon aus, dass ALLE gefüllt werden sollen...
 
Wieso nicht gleich als Wertepaare?
Code:
INSERT INTO
  Tabelle
SET
  Spalte1 = "Wert1",
  Spalte2 = "Wert2",
  …
 
Zurück