0

嗨,我有一些代码如下所示,它使用 now() 命令将 date_time 和 date 插入到 mysql 字段中。

但是 date_time 字段更新但 date 字段没有更新,我似乎无法弄清楚为什么?

我的 mysql 字段是日期时间和日期

   INSERT INTO vistordetails1 
            (ipaddress, client_id, type, date_time, company_name, location, search_term, trafic_source, no_of_pages, date, country_code) VALUES('$ip_address', '$client_id', '$type', now(),'$fields[11]','$fields[6]', '$keyword', '$referer','1', now(), '$country_code')

表结构

    `id` int(11) NOT NULL AUTO_INCREMENT,

    `client_id` int(11) NOT NULL,

    `master_id` int(11) NOT NULL,

    `type` tinyint(1) NOT NULL ,

    `date_time` datetime NOT NULL,

    `company_name` varchar(250) NOT NULL,

    `location` varchar(250) NOT NULL,

    `no_of_pages` int(11) NOT NULL,

    `trafic_source` varchar(250) NOT NULL,

    `search_term` varchar(250) NOT NULL,

    `is_repeater` tinyint(1) NOT NULL,

    `classification` int(11) NOT NULL,

    `owner` int(11) NOT NULL,

    `alert_for_repeat_visit` tinyint(1) NOT NULL DEFAULT '0',

    `is_hot_list` enum('0','1') NOT NULL DEFAULT '0',

    `ipaddress` varchar(50) NOT NULL,

    `country_code` varchar(10) NOT NULL,

    `date` date NOT NULL,
4

2 回答 2

0

如果您需要将 PHP 日期转换为有效的 MySql 日期,那么您唯一需要做的就是确保其格式正确。

默认date/datetime格式为Mysqlyyyy-mm-ddyyy-mm-dd hh:mm:ss

像这样的东西会起作用。

$phpDate = date('Y-m-d H:i:s', time());

然而

因为您正在创建一个新日期,为什么要使用PHP?您可以在其中MySql包含使用NOW()函数的当前日期。

$sql = "INSERT INTO xyz (a, b, c, datetime) VALUES ('a', 'b', 'c', NOW());"

此外

您可以将 a default valueofCURRENT_TIMESTAMP应用于表格列。这意味着您甚至不需要传递任何日期,因为数据库会处理它。

IEALTER TABLE test CHANGE datecolumn datecolumn DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP;

于 2013-05-07T15:23:42.100 回答
0

尝试对日期字段使用 CURDATE() 而不是 NOW()。

$INSERT = "INSERT INTO vistordetails1 (ipaddress, client_id, type, date_time, company_name, location, search_term, trafic_source, no_of_pages, date, country_code) VALUES( '".mysql_real_escape_string(trim($ip_address))."', '".mysql_real_escape_string(trim($client_id))."',
'".mysql_real_escape_string(trim($type))."', now(), '".mysql_real_escape_string(trim($fields[11]))."', '".mysql_real_escape_string(trim($fields[6]))."', '".mysql_real_escape_string(trim($keyword))."', '".mysql_real_escape_string(trim($referer))."', '".mysql_real_escape_string(trim(1))."', CURDATE(), '".mysql_real_escape_string(trim($country_code'))."')";

同样正如之前的用户提到的,您非常需要确保您的数据被转义,或者使用 mysql prepare。

于 2013-05-07T15:17:09.977 回答