在MySql数据库表中插入日期?

时间:2012-01-25 17:48:33

标签: php mysql date ip

我正在构建一个登录应用程序,我想存储用户注册的日期和上次登录日期以及最后一次登录ip。

创建表时,我应该为这三列中的每一列赋予哪种类型?

当我插入新的用户名和其他数据时,我该如何处理?

我应该使用PHP来获取注册日期还是应该使用mysql的当前日期?

对于上次登录日期和IP,我该怎么办?

3 个答案:

答案 0 :(得分:1)

CreatedDate    : datetime
LastLoginDate  : datetime
LastLoginIp    : varchar(20)

检查此链接以了解如何获取用户的IP。 http://www.plus2net.com/php_tutorial/php_ip.php

当用户尝试登录时,您检查数据库的用户名和密码,如果用户有效,请获取用户IP并更新您的表,将此IP地址作为" LastLoginIp"的值。列。

答案 1 :(得分:1)

  

创建表时,我应该给这三种类型中的每一种   列?

create_datelast_login_date DATETIMElast_login_ip VARCHAR

  

我应该使用PHP来获取注册日期,还是应该使用mysql?   当前日期?

除非您被要求不使用MySQL特定功能,否则无关紧要。

  

对于上次登录日期和IP,我该怎么办?

当用户登录时,运行使用当前时间戳填充last_login_date的更新语句,并使用last_login_ip的内容填充$_SERVER['REMOTE_ADDR']

答案 2 :(得分:1)

对于createdDatelastLoginDate使用datetime字段,对于IP地址int字段并通过PHP的ip2long()函数插入数据,请参阅{{ 3}}

要检索数据,您可以在MySQL级别上执行此操作:

SELECT INET_NTOA(ip) FROM 'log' WHERE

要获取真实的IP地址,您还要检查代理:

if (!empty($_SERVER['HTTP_CLIENT_IP'])){
  $ip=$_SERVER['HTTP_CLIENT_IP'];
//Is it a proxy address
}elseif (!empty($_SERVER['HTTP_X_FORWARDED_FOR'])){
  $ip=$_SERVER['HTTP_X_FORWARDED_FOR'];
}else{
  $ip=$_SERVER['REMOTE_ADDR'];
}