INSERT INTO
Phillip
- php
0 Tobias Kloth0 Phillip
0 Vinzenz0 Xava- datenbank
Hallo!
warum bekomme ich hier immer den fehler "es ist ein fehler aufgetreten" ?? es muss wohl etwas mit der zeile $sql = "INSERT...... zu tun haben. nur was?? wäre echt super wenn mit jmd. weiterhelfen kann.. vielen dank,
phillip
<?php
require "mysql_zugangsdaten.php";
$nick = $_POST['nick'];
$pw = $_POST['pw'];
$vorname = $_POST['vorname'];
$connectionid = mysql_connect ("$DB_HOST", "$DB_USER", "$DB_PW");
if (!mysql_select_db ("$DB_NAME", $connectionid))
{
die ("fehler beim herstellen der verbindung zur datenbank aufgetreten");
}
$sql = "INSERT INTO benutzerdaten2 (nick, pw, vorname), VALUES ($nick, $pw, $vorname)";
mysql_query ($sql);
if (mysql_affected_rows ($connectionid) > 0)
{
echo "user erfogreich erstellt";
}
else
{
echo "es ist ein fehler aufgetreten";
}
?>
Hallo Phillip,
$connectionid = mysql_connect ("$DB_HOST", "$DB_USER", "$DB_PW");
if (!mysql_select_db ("$DB_NAME", $connectionid))
die Anführungszeichen um die Variablen sind überflüssig.
die ("fehler beim herstellen der verbindung zur datenbank aufgetreten");
du solltest dir im Fehlerfall eine Meldung ausgeben lassen, die dir bei der Fehlersuche auch hilft - die Meldung "Fehler [...]" ist im Gegensatz zu mysql_error() aussagelos.
$sql = "INSERT INTO benutzerdaten2 (nick, pw, vorname), VALUES ($nick, $pw, $vorname)";
du möchtest dir http://dev.mysql.com/doc/mysql/de/HANDLER.html anschauen und feststellen, dass das Komma vor "VALUES" zu viel ist.
mysql_query ($sql);
if (mysql_affected_rows ($connectionid) > 0)
warum überprüfst du nicht erstmal ob mysql_query überhaupt erfolgreich war?
echo "es ist ein fehler aufgetreten";
s.o. ein mysql_error() hätte dir vermutlich verraten, wo der Fehler liegt.
Grüße aus Nürnberg
Tobias
vielen dank,
ihr habt mir sehr geholfen...
grüße aus husum
phillip
Hallo Phillip,
warum bekomme ich hier immer den fehler "es ist ein fehler aufgetreten" ?? es muss wohl etwas mit der zeile $sql = "INSERT...... zu tun haben. nur was?? wäre echt super wenn mit jmd. weiterhelfen kann.. vielen dank,
$nick = $_POST['nick'];
$pw = $_POST['pw'];
$vorname = $_POST['vorname'];
...
$sql = "INSERT INTO benutzerdaten2 (nick, pw, vorname), VALUES ($nick, $pw, $vorname)";
Die SQL-Anweisung sieht nun in etwa folgendermassen aus:
INSERT INTO benutzerdaten2
(nick, pw, vorname),
VALUES
(Otto Normalverbraucher, geheim, Otto);
Erster Fehler: das Komma hinter der Feldliste (Zeile 2).
Zweiter Fehler: Zeichenketten sind in einfache Anführungszeichen zu setzen.
Dritter Fehler: Du übernimmst Formulareingaben ungeprüft in eine SQL-Anweisung.
Zum dritten Fehler befrage bitte das </archiv/>. Es spuckt z.B. </archiv/2004/1/69286/#m398490> aus.
Freundliche Grüsse,
Vinzenz
Hallo Phillip!»» warum bekomme ich hier immer den fehler "es is
$sql = "INSERT INTO benutzerdaten2 (nick, pw, vorname), VALUES ($nick, $pw, $vorname)";
^
Warum ein Komma? ----------------------------------------^
Noch ein Tipp: Daten nicht einfach so in die Datenbank speichern: Gefahr von SQL Injections.
Mehr Informationen findest du z. B. hier:
- MySQL-Manual (en): 14.1.4 INSERT Syntax
http://dev.mysql.com/doc/mysql/en/INSERT.html
- MySQL-Manual (de): 7.4.2 INSERT-Syntax
http://dev.mysql.com/doc/mysql/de/HANDLER.html
- 16.18. Wie kann ich bösartigen Code in SQL-Abfragen unterbinden?
http://www.dclp-faq.de/q/q-sql-injection.html