drupal中的日期时间插入问题

时间:2011-01-20 07:26:05

标签: php mysql drupal-6

$date_time = date("y-m-d h:i:s", time());

db_query("INSERT INTO {category}(category_name, sort_order, date, category_image)
VALUES ('%s', '%s', '%s', '%s')", $form['name']['#post'], $form['name']['#post'], $date_time, $form['name']['#post']);

此处未插入当前日期...我应该使用什么代替%s?或者我该如何解决这个问题。想要一个简单的回复。

感谢。

4 个答案:

答案 0 :(得分:1)

对datetime字段使用整数类型。 试试这个:

$current_time = time();

db_query("INSERT INTO {category}(category_name, sort_order, date, category_image)
VALUES ('%s', '%s', %d, '%s')", $form['name']['#post'], $form['name']['#post'], $current_time, $form['name']['#post']);

答案 1 :(得分:0)

尝试$date_time = date("Y-m-d H:i:s", time());

h是01-12而不是H - 00到23

并返回保留关键字,如

(category_name, sort_order, `date`, category_image)

PS:请不要使用保留关键字作为列,是如此麻烦

答案 2 :(得分:0)

表格中“日期”列的数据类型是什么? %s期望并且只插入字符串值 - php日期函数返回一个字符串,因此您可能在那里有一个数据类型不匹配。尝试添加此行:

$date_time=strtotime($date_time);

然后将其插入您的数据库。这应该仅在列的数据类型是日期或日期时才有效。

答案 3 :(得分:0)

不是您问题的直接答案,只是一些建议。在Drupal模块中,写入数据库时​​不应使用“INSERT”,而应使用drupal_write_record(http://api.drupal.org/api/drupal/includes--common.inc/function/drupal_write_record/6)。