在 sql 数据库的单个单元格中使用多个值的正确方法是什么。我正在尝试为访客跟踪编写代码,这就是我要跟踪的内容
IP1:index.php
contact.php
sssa.php
IP2:aaduau.php
ssssau.php
等等
我想为一个 IP 地址插入不同的页面名称。什么是正确的算法来做到这一点?
我实际上建议在表中使用两列:ip_address
, page_name
.
插入时,您将执行类似以下操作:
$ip = $_SERVER['REMOTE_ADDR'];
$page = mysql_real_escape_string($_SERVER['REQUEST_URI']);
mysql_query('INSERT INTO logs (ip_address, page_name) VALUES(INET_ATON("' . $ip . '"), "' . $page . '");');
要按 IP 提取所有记录,您只需使用:
$results = mysql_query('SELECT page_name FROM logs WHERE ip_address=INET_ATON("' . $ip . '");');
INET_ATON()
用于将 IP 地址string
转换为网络地址,或long
. 要转换回来,您可以使用INET_NTOA()
,例如SELECT NTOA(ip_address) AS ip_address FROM logs;
添加不带引号的逗号 ',' 以将页面名称保存在单个单元格中,并在从数据库中检索数据时使用 PHP explode() 函数来分解字符串。