0

在 sql 数据库的单个单元格中使用多个值的正确方法是什么。我正在尝试为访客跟踪编写代码,这就是我要跟踪的内容

IP1:index.php
contact.php
sssa.php
IP2:aaduau.php
ssssau.php
等等

我想为一个 IP 地址插入不同的页面名称。什么是正确的算法来做到这一点?

4

2 回答 2

1

我实际上建议在表中使用两列: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;

于 2012-07-21T05:14:22.217 回答
0

添加不带引号的逗号 ',' 以将页面名称保存在单个单元格中,并在从数据库中检索数据时使用 PHP explode() 函数来分解字符串。

于 2012-07-21T05:11:59.097 回答