Ich versuche, ein System zu erstellen (naja, es ist ein Projekt), wo ich Benutzer IP-Adressen protokollieren können, wenn sie bestimmte Aktivitäten ausführen. Nach einigen Recherchen habe ich festgestellt, dass ip2long benötigt wird, um in die Datenbank zu konvertieren. Ich habe eine Datenbank namens ips (unsigned) und die Hauptspalten sind ip und count.Verwenden von IPs in PHP und MySQL
Mysql Screenshot:
Dies ist, was ich zur Zeit habe:
$ip=$_SERVER['REMOTE_ADDR'];
$ip = ip2long($ip);
$stmt = $DB_con->prepare("INSERT INTO ips (ip, count) VALUES (:addr, 1) ON DUPLICATE KEY UPDATE count = count + 1");
$stmt->bindparam(":addr", $ip);
$stmt->execute();
Dies funktioniert gut. Aber ich kann nicht scheinen, die Werte von der Datenbank abzurufen und sie anzuzeigen. Ich mache das wahrscheinlich schrecklich falsch, habe aber keine Ahnung. Nach dieser Aussage muss ich dann Longtoip konvertieren. Ich würde etwas Hilfe schätzen, da dies gibt mir gerade einen Fehler 500:
$stmt = $DB_con->prepare("SELECT ip , count FROM ips WHERE 1")
$stmt->execute();
Ihr Fehler 500 kann von einem Fehler auf DB-Ebene stammen. Können Sie '$ stmt-> errorInfo()' nach 'execute' hinzufügen, um zu wissen, was append? Aber ich denke, das liegt daran, dass 'count' ein MySQL-Schlüsselwort ist und es maskiert werden muss:' SELECT ip, \ 'count \' ... '. – Elorfin
"1" ist keine Bedingung. Was versuchst du zu fragen? – Mureinik
und "count" ist eine reservierte Arbeit (es ist eine Funktion), aber Sie rufen es ohne Argumente – Mureinik