Entwickler-Ecke
Off Topic - SQL Problem
Dude566 - Mi 30.03.11 14:52
Titel: SQL Problem
Hallo Community,
ich bin gerade dabei ein Script in PHP zu schreiben welches die Besucher zählt und ausgeben soll, das ganze möchte ich dann per Include in mein phpBB Forum einfügen.
Doch habe ich ein Problem beim Hinzufügen der Daten in die Datenbank, der Abruf funktioniert, was ich anhand von Testeingaben via phpMyAdmin getestet habe.
Die datenbank heißt "datenbank" und die Tabelle "visitors" enthält ein Feld namens "ip" vom Typ VarChar und ein Feld namens "date" vom Typ Date.
Hier mal ein Auszug aus meinem Script
Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15:
| // Besucherzeit und IP ermitteln $ip = $_SERVER["REMOTE_ADDR"]; $timestamp = time(); $date = date("Y.m.d", $timestamp);
// SQL-Abfragen definieren $query1 = "INSERT INTO visitors VALUES (".$ip.", ".$date.")";
// Datensatz hinzufügen $result1 = mysql_query($query1);
// Überprüfung if(!$result1) { echo('<script language="Javascript">alert("Fehlgeschlagen");</script>'); } |
Und da es nicht funktioniert wird natürlich jedes mal der Alert via JavaScript aufgerufen.
Habt ihr eine Ahnung was falsch sein könnte?
jaevencooler - Mi 30.03.11 15:14
Moin,
was für einen Alert / Fehlermeldung bekommst Du den zurück ?
Gruß Michael
Horschdware - Mi 30.03.11 15:33
Mal ins Blaue geraten: Der Primärschlüssel der Tabelle ist "IP". Ist die entsprechende IP bereits einmal in der Tabelle vorhanden, so kann natürlich kein weiteres Insert mit dem gleichen Primärschlüssel erfolgen.
Dude566 - Mi 30.03.11 15:40
Naja meine eigener Alert wie man oben im Code sehen kann.
Ich hab IP nicht speziell als Primary Key angegeben, wenn allerdings automatisch das erste Feld zum primären wird dann ist er das wohl.
Aber es sind ja noch keine Datensätze in der Tabelle vorhanden bis auf die von mir manuell hinzugefügten und die entsprechen nicht der Ip die neu hinzu kommen sollte.
Insofern kann da der Fehler nicht liegen. ;)
Edit: Habe das Problem gelöst, hatte vergessen die Value Werte als Strings zu kennzeichnen:
Quelltext
1:
| $query1 = "INSERT INTO visitors VALUES ('".$ip."', '".$date."')"; |
HenryHux - Mi 30.03.11 18:35
Hi,
bei solchen Situationen hilft es oft einmal die mysql Errors abzufragen.
Dazu musst du einfach mal ein echo mysql_errors(); hinzufügen, dann zeigt er dir den Fehler eig ganz gut an, wenn es was mit der DB zu tun hat.
Lg
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2025 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!