MySQL Datenbank mit php script füllen
Richy
- datenbank
Hallo.
Ich versuche mittels einer php Datei meine MySQL Datenbank zu füllen. Die register.php bekommt die Daten mittels <form method="post" action="register.php"> zugeschickt.
Mit folgenden Code:
$sql = "INSERT INTO ".
"benutzerdaten (user, password, name, sname, city, street, mail) ".
"VALUES ('".$Nickname."', '".
md5 ($Kennwort)."', '".
$Vorname."', '".
$Nachname."', '".
$Stadt."', '".
$Strasse."', '".
$Postleitzahl."', '".
$email."')";
Will ich die Daten in die Datenbank schreiben.
Solange ich nur 4 Tabellenfelder füll (Egal welche z.B. user, password, name, sname) funktionierts. Natürlich muss ich die restlichen auskommentieren oder löschen.
Sobald ich aber ein 5 Feld füllen will funktionierts nicht mehr.
Die einzige Fehlermeldung die er schreibt ist "Fehler beim Anlegen der Benutzer" (Die lass ich ihn ausspucken wenn der Vorgang nicht hinhaut. Was nicht funktioniert schreibt er aber nicht hin.
Der php Script sollte in Ordnung sein ich hab schon versucht ihn umzuschreiben es ist aber immer der gleiche Fehler aufgetreten deshalb glaub ich dass es an der Datenbank bzw. der Tabelle liegt. Diese hab ich mit phpmyadmin erstellt. Das system ist ein xubuntu 8.10 mit apache2 php5 und dem neuesten mysql-server. Ich hab schon im google rum gesucht leider weiß ich nicht genau wonach ich suchen soll... In den Tutorials um mittels php eine MySQL DB zu füllen steht überall dass man die Tabellenfelder beliebig erweitern kann... So wie es aussieht ist das bei mir nicht der fall. Wäre nett wenn mir jemand helfen könnte.
Danke im Voraus
MFG Richy
yo,
$sql = "INSERT INTO ".
"benutzerdaten (user, password, name, sname, city, street, mail) ".
"VALUES ('".$Nickname."', '".
md5 ($Kennwort)."', '".
$Vorname."', '".
$Nachname."', '".
$Stadt."', '".
$Strasse."', '".
$Postleitzahl."', '".
$email."')";
wo ist den die PLZ spalte angegeben im INSERT Statement...
Ilja
yo,
»» $sql = "INSERT INTO ".
»» "benutzerdaten (user, password, name, sname, city, street, zip, »» »» mail) ".
»» "VALUES ('".$Nickname."', '".
»» md5 ($Kennwort)."', '".
»» $Vorname."', '".
»» $Nachname."', '".
»» $Stadt."', '".
»» $Strasse."', '".
»» $Postleitzahl."', '".
»» $email."')";
»»wo ist den die PLZ spalte angegeben im INSERT Statement...
Ilja
Die dürft ich durch das ständige Herumbasteln vergessen
haben danke...
Aber leider funktioniert das nach wie vor nur mit 4 Felder...
yo,
Aber leider funktioniert das nach wie vor nur mit 4 Felder...
welche fehlermeldung und hast du die anweisung mal ohne PHP code ausgeführt, wo ist der reine SQL Code dazu, srpich ohne variablen und sonstigen php anhang ?
Ilja
Wie schon gesagt wurde, versuchst du 8 Werte in 7 Felder zu schreiben.
Bei INSERT INTO muss genausoviel angegeben wie bei VALUES.
Die funktion mysql_error(); könnte Dir auch helfen. An der Stelle wo du die Fehlermeldung ausgibst.
echo("Konnte Benutzer nicht anlegen: ".mysql_error());
Bist Du Dir sicher, dass die Table die richtige Anzahl Felder hat, und die Art der Felder stimmt?
Mit DESCRIBE deinetabelle; kannst Du nachschauen.
Grüße
Wie schon gesagt wurde, versuchst du 8 Werte in 7 Felder zu schreiben.
Bei INSERT INTO muss genausoviel angegeben wie bei VALUES.Die funktion mysql_error(); könnte Dir auch helfen. An der Stelle wo du die Fehlermeldung ausgibst.
echo("Konnte Benutzer nicht anlegen: ".mysql_error());Bist Du Dir sicher, dass die Table die richtige Anzahl Felder hat, und die Art der Felder stimmt?
Mit DESCRIBE deinetabelle; kannst Du nachschauen.
Grüße
Hallo. Danke für die Antworten. Also die Tabelle und der Script haben beide gepasst (Bis auf den Fehlenden Eintrag). Ich hab apache2 phpmyadmin und mysql-server neu installiert, die Datenbank neu angelegtg (genau so wie vorher) und es hat sofort funktioniert... Da dürft was mit irgend einer Server Config nicht gepasst haben vielleicht irgend ein Limit beim in die Datenbank schreiben oder so... Nochmals vielen Dank für eure Antworten...
MFG Richy
Mahlzeit Richy,
ergänzend zu den bisherigen Hinweisen:
$sql = "INSERT INTO ".
"benutzerdaten (user, password, name, sname, city, street, mail) ".
"VALUES ('".$Nickname."', '".
md5 ($Kennwort)."', '".
$Vorname."', '".
$Nachname."', '".
$Stadt."', '".
$Strasse."', '".
$Postleitzahl."', '".
$email."')";
Woher kommen die Werte in den Variablen? Du hast hoffentlich register_globals auf "Off"?
Dann solltest Du Dir noch das unsägliche Umkopieren der Werte von superglobalen Arrays in lokale Variablen abgewöhnen und die Variablen bei der Verwendung in einer SQL-Abfrage stattdessen sauber und kontextgerecht behandeln: mysql_real_escape_string().
MfG,
EKKi