Daten werden nicht in MySQL DB eingetragen.
lima-city → Forum → Programmiersprachen → PHP, MySQL & .htaccess
ausgeben
code
datenbank
datum
eintrag
eintragen
feld
jemand
not
null
rubrik
sprache
standard
statement
tabelle
text
url
verbindung
wert angeben
wertung
-
Habe das Problem, dass ich verschiedenste Daten in eine DB eintragen möchte aber diese nicht funktioniert. Es wird weder eine fehlermeldung ausgegeben noch sind die variablen leer. Bin so langsam am verzweifeln, da ich jetzt sämtlich schreibweise die ich kenne aufgeschrieben habe-_-
hier der vereinfachte Code:
<?php $text = $_POST['eintragen']; $pw = $_POST['pw']; verbindung = mysql_connect("mysql.lima-city.de", "USER124444", "pw") or die("Keine Verbindung moeglich"); mysql_select_db("db_124444_3") or die ("Die Datenbank existiert nicht"); $eintrag = "INSERT INTO 'goldeneye' ('text')VALUES ('$text')"; if ($pw == "pw") { $eintragen = mysql_query($eintrag); }
Findet jemand einen fehler? Könnte mir jemand einen Tipp geben, wie man überprüft, warum daten nicht in eine DB eingetragen werden?
Hoffe auf hilfe
Daniel -
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage
-
Hallo goldeneye,
mit http://de.php.net/mysql_error kannst du dir evtl die Fehlermeldung ausgeben lassen.
Du kannst dir auch mal $eintrag ausgeben lassen. und überprüfen ob alles richtig zussamengesetzt wird.
<?php $text = $_POST['eintragen']; $pw = $_POST['pw']; $verbindung = mysql_connect("mysql.lima-city.de", "USER124444", "pw") or die("Keine Verbindung moeglich"); mysql_select_db("db_124444_3") or die ("Die Datenbank existiert nicht"); $eintrag = "INSERT INTO 'goldeneye' ('text')VALUES ('$text')"; print $eintrag; if ($pw == "pw") { $eintragen = mysql_query($eintrag); } print mysql_error($verbindung);
-
guter Tipp.
Zumindest sagt es mir, dass "Duplicate entry '0' for key 1 " bei der variablen verbindung ausggeben wird. was auch immer das bedeuten mag...
Für mysql_error gibt er dafür 0 aus -_-
Dafür gibt er bei print $eintrag alles richtig aus
Hätte jemand eine idee, was man ändern muss? -
Wie sieht deine DB (Tabelle) aus?
-
dussel schrieb:
Wie sieht deine DB (Tabelle) aus?
Die Tabelle ist wie folgt aufgebaut:
id| int(5)| unsigned| not null| PRIMARY KEY
text| longtext| latin1_swedisch_ci| not null
sprache| varchar(4)| latin1_swedisch_ci| not null
Rubrik| varchar(16)| latin1_swedisch_ci| not null
wertung| int(20)| not null
datum| varchar(16)| latin1_swedisch_ci| not null
das "latin1_swedisch_ci" wurde automatisch gesetzt -
füg am bsten zur ID noch ein auto_increment hinzu. (php myadmin: extra)
du hasst auch alle anderen felder als Not Null definiert.
Somit musst du dort entweder einen standard wert angeben, oder bei der SQL Statement auch diese Felder beachten. -
dussel schrieb:
Somit musst du dort entweder einen standard wert angeben, oder bei der SQL Statement auch diese Felder beachten.
wie meins du, dass ich einen standart wert eingeben muss?
Was bedeutet das? Heißt das, dass jedes mal, wenn die eingabe eigentlich 0 wäre, dieser Text eingetragen wird? -
Du kannst mit zb phpMyAdmin den Felder einen Standard wert geben.
Sofern du diese Felder dann keinen Wert übergeben wird, wird dieser eingetragen. Oder du änderst sie von NOT NULL auf NULL, dann können sie evlt auch leerbleiben.
Eine möglichkeit ist auch diese:
$eintrag = "INSERT INTO goldeneye ('id', 'text', 'sprache', 'Rubrik', 'wertung', 'datum') VALUES ('[i][nächste id][/i]', '$text', '', '', '0', '')";
bei id solltes du, dass allerdings in der db ändern.
zb mit diesem SQL Statement:
ALTER TABLE `goldeneye` CHANGE `id` `id` INT( 11 ) NOT NULL AUTO_INCREMENT;
-
dussel schrieb:
Du kannst mit zb phpMyAdmin den Felder einen Standard wert geben.
Sofern du diese Felder dann keinen Wert übergeben wird, wird dieser eingetragen. Oder du änderst sie von NOT NULL auf NULL, dann können sie evlt auch leerbleiben.
Eine möglichkeit ist auch diese:
$eintrag = "INSERT INTO goldeneye ('id', 'text', 'sprache', 'Rubrik', 'wertung', 'datum') VALUES ('[i][nächste id][/i]', '$text', '', '', '0', '')";
bei id solltes du, dass allerdings in der db ändern.
zb mit diesem SQL Statement:
ALTER TABLE `goldeneye` CHANGE `id` `id` INT( 11 ) NOT NULL AUTO_INCREMENT;
Danke!
Endlich funktioniert die DB!
Hoffe ich kann mich mal revanchieren. Gruß
Daniel -
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage