Как мне вставить дату в MySQL в качестве параметра? - PullRequest
2 голосов
/ 18 февраля 2010

У меня есть следующий код:

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 ]

2 голосов
/ 18 февраля 2010

Вы можете взглянуть на функцию STR_TO_DATE . Требуется параметр формата. Допустимые значения для параметра формата описаны здесь .

$sqlQuery = 'INSERT INTO ' . $dbtable . ' (id_author, date, title, description)' .
            ' VALUES (?, STR_TO_DATE(?, \'%d.%m.%Y\'), ?, ?)';
1 голос
/ 18 февраля 2010

Вы можете использовать столбец даты / времени

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.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...