gpt4 book ai didi

php - 在 php 和 mysql 中使用 IP

转载 作者:行者123 更新时间:2023-11-29 04:37:10 27 4
gpt4 key购买 nike

我正在尝试创建一个系统(这是一个项目),我可以在用户进行某些事件时记录他们的 IP 地址。经过一些研究,我发现需要 ip2long 才能转换为数据库。我有一个名为 ips(无符号)的数据库,主要列是 ip 和 count。

Mysql截图:

enter image description here

这是我目前得到的:

$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();

这很好用。但我似乎无法从数据库中检索值并显示它们。我可能做错了,但不知道。在这条语句之后,我需要转换 longtoip。我会很感激一些帮助,因为这只会给我一个错误 500:

$stmt = $DB_con->prepare("SELECT ip , count FROM ips WHERE 1")
$stmt->execute();

最佳答案

下面的查询没有任何问题,从查询下面给出的 SQL Fiddle 链接可以看出:

SELECT ip, count FROM ips WHERE 1

SQLFiddle

但是,如果您确实打算将 COUNT 用作函数,那么您的查询需要一个 GROUP BY 子句:

SELECT ip, COUNT(*) AS ipCount
FROM ips
GROUP BY ip

作为一般的良好做法,您可能希望避免将列命名为 count,或在任何其他 MySQL 函数之后,因为这可能会导致您对查询实际执行的操作感到困惑(并且您可能有你自己也成了这个的牺牲品)。

关于php - 在 php 和 mysql 中使用 IP,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38551564/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com