【问题标题】:datetime insertion problem in drupaldrupal中的日期时间插入问题
【发布时间】:2011-01-20 07:26:05
【问题描述】:
$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 ?或者我该如何解决这个问题。想要一个简单的回复。

谢谢。

【问题讨论】:

  • 检查 mysql 中的“日期”字段并查看它接受哪些值,同时检查您可能收到的任何查询错误。调试起来并不难。

标签: php mysql drupal-6


【解决方案1】:

对日期时间字段使用整数类型。 试试这个:

$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']);

【讨论】:

    【解决方案2】:

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

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

    并在保留关键字上打勾

    (category_name, sort_order, `date`, category_image)
    

    PS:请不要使用保留关键字作为列,太麻烦了

    【讨论】:

    • 这也显示了相同的结果......但我已经解决了这个问题。 $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', '$date_time', '%s')", $form['name'][' #post'], $form['name']['#post'], $form['name']['#post']);感谢您的回复。
    【解决方案3】:

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

    $date_time=strtotime($date_time);
    

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

    【讨论】:

    • 您对 ajreal 答案的评论表明您将数据库中的日期作为字符串插入 - 如果您打算按日期对数据库条目进行排序或按日期操作它们,这可能是一个问题。跨度>
    【解决方案4】:

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

    【讨论】:

      猜你喜欢
      • 2011-06-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-03-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多