Warnung: file_put_contents(/home/www/web1/html/php_dev/test.txt) [function.file-put-contents]: failed to open stream: Permission denied in /home/www/web1/html/php_dev/sys/lib.activity.php (Zeile 58)
Problem mit Datenbank eintrag [Archiv] - PHP-Scripte PHP-Tutorials PHP-Jobs und vieles mehr

- Ad -
php-resource




Archiv verlassen und diese Seite im Standarddesign anzeigen :
Problem mit Datenbank eintrag


 
Simon2004
13-12-2005, 22:24 
 
Hallo,
und zwar ich habe folgendes Problem. Ich ein Gästebuch machen habe eines der Tuturials der Seite hier verwendet, die waren soweit auch ganz gut, nur wenn es darum geht die Daten in die Datenbank zu schreiben streikt das script.
Ich hab schon so ziemlich alles überprüft passwort, username, datenbank, name, rechte und nach jeder zeile mir die variablen ausgeben lassen es stimmt alles alos sollte es ja teoretisch gehn, is aber nicht. Vielleicht weiß einer hier weiter.
Hier der Code:

$connect = mysql_connect($dbserver,$dbuser,$dbpass);
$selectDB = mysql_select_db($dbname) or die("Select nicht ausgeführt");
$query = "INSERT INTO gbook VALUES('', '$datum', '$zeit', '$name', '$email',
'$www', '$eintrag', '$ip')";
mysql_query($query,$connect);
$result = mysql_query($query,$connect);
if (!$result)
{
die ('Fehler');

}
mysql_close($connect);



MFG
Simon

 
foreach(:)
13-12-2005, 22:27 
 
'$datum', '$zeit', '$name', '$email', '$www', '$eintrag', '$ip'

'hier werden variablen nicht erkannt'

nimm "','".$variable."','"

 
Marscel
13-12-2005, 22:29 
 
$connect = mysql_connect($dbserver,$dbuser,$dbpass);
$selectDB = mysql_select_db($dbname) or die("Select nicht ausgeführt");
$query = "INSERT INTO gbook VALUES('', '$datum', '$zeit', '$name', '$email',
'$www', '$eintrag', '$ip')";
$result = mysql_query($query,$connect);
if (!$result)
{
die (mysql_error());

}
mysql_close($connect);



MFG
Simon [/B][/QUOTE]

Im Query musss man "INSERT INTO gbook (id, datum, zeit, name, ...) VALUES ('', $datum, $zeit, $name,...);" verfahren (natürlich müssen die Namen in den ersten Klammern den richtigen Feldnamen haben), wenns trotzdem so gehen sollte, rate ich aber nicht an, es so zu tun.

 
Heini81
13-12-2005, 22:35 
 
Schreib mal vor dein mysql_query($query,$connect); ein echo $query; und poste das Ergebnis.

@foreach(:) : Bei mir funktioniert das auch so, ist aber nicht so schön...

@Marscel: Das funktioniert auch, man muss nur auf die Reihenfolge achten. Wenn man einen String in ein int-Feld schreiben will, wird das nix... ;-)

 
reallife
13-12-2005, 22:38 
 
Original geschrieben von Marscel
Im Query musss man "INSERT INTO gbook (id, datum, zeit, name, ...) VALUES ('', $datum, $zeit, $name,...);" verfahren (natürlich müssen die Namen in den ersten Klammern den richtigen Feldnamen haben), wenns trotzdem so gehen sollte, rate ich aber nicht an, es so zu tun.
So ein quatsch, muss man nicht unbedingt! Werte ohne Quotes zu setzen ist jeweils abhängig von dem Datenbankfeld.

@Simon2004, hast du den Thread "Erst lesen: Posten von Problemen (http://www.php-resource.de/forum/showthread.php?threadid=50454)" gelesen?
[list=1]
Erhälst du eine Fehlermeldung? Wenn ja, welche?
Was hast du bisher versucht, um den Fehler zu beheben?
[/list=1]

 
Simon2004
13-12-2005, 22:38 
 
so wenn ich nun echo $query mach kommt das dabei raus:
INSERT INTO gbook VALUES('', '13.12.2005', '22:37', 'test', 'test', 'http://', 'test', '84.148.24.75')Fehler

eigentlich genau das was soll und das ist der punkt den ich an der sache nicht versteh eigentlich sollte er das ja machen.
@Marscel
"INSERT INTO gbook (id, datum, zeit, name, ...)
VALUES ('', $datum, $zeit, $name,...);"
habe ich es auch schon probiert da kam es aufs selbe raus

 
Heini81
13-12-2005, 22:41 
 
Und welche Datentypen haben die Spalten? Evtl. gibt es da Konflikte.

 
Simon2004
13-12-2005, 22:45 
 
feld typ null standard extra
id int(4) Nein auto_increment
datum varchar(10)
zeit varchar(8) Nein
name varchar(50) Nein
email varchar(50) Nein
www varchar(50) Ja NULL
eintrag text Nein
ip_adresse varchar(15) Nein

also so sieht die tabelle aus, müsste alles richtig sein, da ich über phpmyadmin ohne jegliche fehler einträge machen kann.

 
reallife
13-12-2005, 22:46 
 
Original geschrieben von Simon2004


$connect = mysql_connect($dbserver,$dbuser,$dbpass);
$selectDB = mysql_select_db($dbname) or die("Select nicht ausgeführt");
$query = "INSERT INTO gbook VALUES('', '$datum', '$zeit', '$name', '$email',
'$www', '$eintrag', '$ip')";
mysql_query($query,$connect);
$result = mysql_query($query,$connect);
if (!$result)
{
die ('Fehler');

}
mysql_close($connect);



versuchs mal damit:
$connect = mysql_connect($dbserver,$dbuser,$dbpass);
$selectDB = mysql_select_db($dbname) or die("Select nicht ausgeführt");
$query = "INSERT INTO gbook VALUES('', '".$datum."', '".$zeit."', '".$name."', '".$email."',
'".$www\."', '".$eintrag."', '".$ip."')";
mysql_query($query,$connect);
$result = mysql_query($query,$connect) or die("<pre>Fehler:<br>".mysql_errno()."@".mysql_error()."</pre>");

mysql_close($connect);

 
Simon2004
13-12-2005, 22:49 
 
also
@ reallife
wenn ich das so mach wie du bekomm ich folgendes zurück:
Fehler:

1264@Out of range value adjusted for column 'id' at row 1

 
Heini81
13-12-2005, 22:51 
 
Du solltest die Feldnamen explizit angeben, da du eine auto_increment-Spalte hast und MySQL es nicht so gerne mag, wenn du versuchst, etwas anderes einzufügen...

Also z.B. insert into tabelle set feld1 = '$feld1', feld2 = '$feld2'....

 
Simon2004
13-12-2005, 23:06 
 
ok ich hab den Fehler gefunden.
aufgrund der ausgabe:
1264@Out of range value adjusted for column 'id' at row 1
habe ich bei google mal gesucht und es lag an einer einstellung in meiner my.ini
aber danke nochmal für die schnelle und gute hilfe.
MFG
Simon

- -

Alle Zeitangaben in WEZ +2. Es ist jetzt 17:48 Uhr.