MYSQL-Insert
Binni
- php
0 romy0 Binni
1 Vinzenz Mai0 lulu0 Binni
Hallo zusammen,
folgender Code ...
mysql_query (sprintf("INSERT INTO $table_user
(nick_name, full_name, group, status, anz_logins, mail, password)
VALUES
('%s', '%s', '%s' ,'%s' ,'%b' ,'%s' ,'%s')",
$nick_name, $full_name, $group_nu, $status, 0, $mail, $pw));
... erzeugt bei mir eine FALSE
was mache ich Falsch, ich sitze davor und finde den Fehler einfach nicht, es kommt aber auch keine Debug-Ausgabe - die Tabelle gibts und acuh alle Variablen sind vorhanden
Viele Grüße - der Binni
Hi Binni,
mysql_query (sprintf("INSERT INTO $table_user
(nick_name, full_name, group, status, anz_logins, mail, password)
VALUES
('%s', '%s', '%s' ,'%s' ,'%b' ,'%s' ,'%s')",
$nick_name, $full_name, $group_nu, $status, 0, $mail, $pw));
Ich finde die Methode sehr ungewöhnlich, aber das tut nichts zur Sache. Du verwendest inkonsequenterweise aber $table_user als variable, statt dieses auch über die Funktion sprintf einzulesen. Sollte es nicht eigentlich heissen:
mysql_query (sprintf("INSERT INTO '%s'
(nick_name, full_name, group, status, anz_logins, mail, password)
VALUES
('%s', '%s', '%s' ,'%s' ,'%b' ,'%s' ,'%s')",
$table_user,$nick_name, $full_name, $group_nu, $status, 0, $mail, $pw));
Was vielleicht für die Fehlersuche hilft wäre das Ausgeben der Mysql_error-Funktion um den Mysql-Fehler auch zu sehen, ich schätze er sagt sowas wie "Tabellenname nicht gefunden".
Viel Spaß
ciao
romy
Hi,
Ich finde die Methode sehr ungewöhnlich, aber das tut nichts zur Sache. Du verwendest inkonsequenterweise aber $table_user als variable, statt dieses auch über die Funktion sprintf einzulesen. Sollte es nicht eigentlich heissen:
mysql_query (sprintf("INSERT INTO '%s'
(nick_name, full_name, group, status, anz_logins, mail, password)
VALUES
('%s', '%s', '%s' ,'%s' ,'%b' ,'%s' ,'%s')",
$table_user,$nick_name, $full_name, $group_nu, $status, 0, $mail, $pw));
huch, da hab ich wohl ein bissl gemixt ...
Was vielleicht für die Fehlersuche hilft wäre das Ausgeben der Mysql_error-Funktion um den Mysql-Fehler auch zu sehen, ich schätze er sagt sowas wie "Tabellenname nicht gefunden".
ja, die hat weitergeholfen - also somit habe ich wenigstens überhaupt was gesehen
Danke!
Viele Grüße - der Binni
Hallo Binni,
mysql_query (sprintf("INSERT INTO $table_user
(nick_name, full_name, group, status, anz_logins, mail, password)
VALUES
('%s', '%s', '%s' ,'%s' ,'%b' ,'%s' ,'%s')",
$nick_name, $full_name, $group_nu, $status, 0, $mail, $pw));
was mache ich Falsch,
zusätzlich zu dem, was Romy Dir bereits gesagt hat, machst Du einen ganz simplen Fehler. Du verschachtelst zwei Dinge, die viel besser in zwei getrennte Anweisungen gehören.
Warum nicht:
$sql = sprintf("INSERT INTO %s
(nick_name, full_name, group, status, anz_logins, mail, password)
VALUES ('%s', '%s', '%s' ,'%s' ,'%b' ,'%s' ,'%s')",
$table_user,
$nick_name,
$full_name,
$group_nu,
$status,
0,
$mail,
$pw);
// Hier hast Du die Möglichkeit mit
// echo $sql;
// eine Debugausgabe einzugeben.
$result = mysql_query($sql);
// Es ist eine gute Idee, die Rückgabe von mysql_query auswerten zu können,
// auch bei einem INSERT
ich sitze davor und finde den Fehler einfach nicht, es kommt aber auch keine Debug-Ausgabe - die Tabelle gibts und acuh alle Variablen sind vorhanden
Du wunderst Dich über fehlende Debug-Ausgabe? Du eliminierst doch selbst jede Möglichkeit einer solchen.
Weiterhin wäre es eine ganz hervorragende Idee, sämtliche Eingaben mit mysql_real_escape_string() zu behandeln, und zwar genau hier. Beachte die Hinweise in Beispiel 3 zu Magic Quotes.
Freundliche Grüße
Vinzenz
Huhu Binni,
romy und Vinzenz haben Dir ja schon gute Tipps gegeben.
Wenn man sich nicht mit backticks herumschlagen möchte sollte man
vor dem Benamsen seiner Tabellenspalten diese Liste inhaliert haben:
http://dev.mysql.com/doc/refman/5.0/en/reserved-words.html
oder zumindest mal einen Blick drauf werfen ;-)
Viele Grüße
lulu
Hi,
so, hab jetzt ne gaaaaaanze Weile gesucht und den Fehler gefunden - hehe und siehe da Du hast ihn auch entdeckt :-)
war aus technischen Gründen nicht in der Lage ins Netz zu gehen und habe nun jdes Wort durchprobiert ... group ...
Danke!
Viele Grüße - der Binni