如何在mysql中插入日期作为参数?

时间:2010-02-17 23:26:28

标签: php mysql date parameters

我有以下代码:

function dbInsert()
{
    global $dbcon, $dbtable;
    global $inputData;

    $sqlQuery = 'INSERT INTO ' . $dbtable . ' (id_author, date, title, description) VALUES (?, ?, ?, ?)';
    $stmt = $dbcon->prepare($sqlQuery);
    echo $sqlQuery;
    $stmt->bind_param('isss', $inputData['idAuthor'], $inputData['date'], $inputData['title'], $inputData['description']);
    $stmt->execute();
    $stmt->close();
    header('Location: ./news.php?order=' . $_GET['order'] . '&sort=' .  $_GET['sort'] . '&filter=' .  $_GET['filter'] . '&page=' .  $_GET['page'] . '');
}

$ inputData ['date']的格式为dd.mm.yyyy ex(18.02.2010)

我找不到日期参数,所以我试图将其作为字符串插入,这是对的吗?我假设我需要告诉mysql如何处理输入但无法找到关于该主题的任何内容。 ORACLE中的等价物将是TO_DATE(?,'dd.mm.yyyy'),如果它有助于澄清我的要求。

2 个答案:

答案 0 :(得分:2)

您可以查看STR_TO_DATE功能。它需要一个格式参数。格式参数的允许值描述为here

$sqlQuery = 'INSERT INTO ' . $dbtable . ' (id_author, date, title, description)' .
            ' VALUES (?, STR_TO_DATE(?, \'%d.%m.%Y\'), ?, ?)';

答案 1 :(得分:1)

您可以使用日期/时间列

http://dev.mysql.com/doc/refman/5.1/en/date-and-time-types.html

并使用STR_TO_DATE函数:

http://dev.mysql.com/doc/refman/5.1/en/date-and-time-functions.html#function_str-to-date

或者您可以将其转换为unix时间戳并将其插入INT列。