Php sqlite ip地址存储

Php sqlite ip地址存储,php,sqlite,timestamp,ip-address,Php,Sqlite,Timestamp,Ip Address,我试图存储IP地址和PHP的会话id,以“唯一地”标识用户,管理用户队列以通过internet使用令牌控制(一)个硬件设备。当用户拥有令牌时,有权控制设备X次(2分钟)。然后我还需要一个时间戳,即用户请求令牌的时间 在SQlite中查找IP地址和时间戳的正确字段类型时,我发现了一些问题 我使用的是PHP,因此需要一种简单的方法从数据库中检索匹配“文本”cookie会话id和IP的队列,使用时间戳进行排序和筛选 将它们存储在SQlite数据库中的更好方法是什么 我应该使用整数还是文本字段?还有一些

我试图存储IP地址和PHP的会话id,以“唯一地”标识用户,管理用户队列以通过internet使用令牌控制(一)个硬件设备。当用户拥有令牌时,有权控制设备X次(2分钟)。然后我还需要一个时间戳,即用户请求令牌的时间

在SQlite中查找IP地址和时间戳的正确字段类型时,我发现了一些问题

我使用的是PHP,因此需要一种简单的方法从数据库中检索匹配“文本”cookie会话id和IP的队列,使用时间戳进行排序和筛选

将它们存储在SQlite数据库中的更好方法是什么


我应该使用整数还是文本字段?还有一些函数可以处理这些类型?

SQLite是弱类型,但支持类型关联。SQLite只支持小范围的“”(“类型亲缘关系”)

但是,在您的情况下,您可以选择:您可以在
INTEGER
中将时间戳存储为UNIX时间戳,或者在
TEXT
中将时间戳存储为日期时间格式化字符串。请参阅上面链接提供的文档中的“1.2日期和时间数据类型”一节。有很多方法可以帮助您处理此类数据


将IP转换为一个后,可以将其存储为
INTEGER
。或者也可以将其存储为
文本
。我建议使用前一个。

IP通常存储为整数。PHP有一个转换它们的函数:@hakre-这只适用于IPv4。会话ID应该足以识别,PHP为您处理。您可能希望存储ip地址以获取信息,使用inet_ntop()将其转换为文本字符串。这不是他所要求的,显然每个使用sqlite的人都知道这些类型。但他问如何保存IP地址,是的,您可以将其保存为每种类型。但是它会很慢。不要把序言和实际的答案混淆起来:“IP在转换成1后可以存储为整数:ip2long()。或者也可以存储为文本。我建议使用前一个。”。然而,有人可能会说,我没有提到,实际用例可能更相关。例如,如果您只需要IP在某个地方读取和打印(无索引),则文本格式更方便,不会造成太多性能损失,也不会进行转换。
INTEGER
REAL
NUMERIC
TEXT
BLOB
NONE