У меня типичная проблема при попытке вставить дату в MySQL.
Столбец, определенный в MySQL, имеет тип DATE. Моя версия PHP 5.3.0
Помимо этой проблемы с датой, остальная часть моего кода работает просто отлично.
И это мой PHP-скрипт для этого:
$tablename = BOOKS_TABLE;
$insert = mysql_query("INSERT INTO $tablename (barcode, book_name, volume_num,".
" author, publisher, item_type, buy_price, buy_date) VALUES ".
"(".
"'" . $barcode . "', ".
"'" . $bookname . "', ".
"'" . $volumenum . "', ".
"'" . $author . "', ".
"'" . $publisher . "', ".
"'" . $itemtype . "', ".
"'" . $buyprice . "', ".
"'" . getMySQLDateString($buydate). "'".
//"'STR_TO_DATE('".$buydate ."', '%d/%m/%Y'))'". //nothing changes in MySQL
")");
А это неисправная функция:
function getMySQLDateString($buydate) //typical buydate : 04/21/2009
{
$mysqlDateString = date('Y-m-d H:i:s', $strtotime($buydate));
return $mysqlDateString;
}
Первая закомментированная строка ничего не сделает, скрипт выполняется без ошибок, однако после этого ничего не изменилось в базе данных.
Текущий подход вызовет фатальную ошибку, сказав, что имя функции должно быть строкой в этой строке.
На самом деле я следил за этим потоком на SO , но просто не могу передать дату в MySQL ...
Может кто-нибудь помочь мне понять, какая часть не так?
Как бы вы сделали это, в этом случае, чтобы сделать это правильно?
Извините за такой вопрос, как подмастерье, заранее большое спасибо.
Обновлен:
Спасибо, что напомнили мне об этом, и вот точное сообщение об ошибке в виде вывода html:
Неустранимая ошибка: имя функции должно быть строкой в C: \ xampp \ htdocs \ comic \ app \ insertBookIntoDB.php в строке 85
указатель на линию начинается с
$mysqlDateString = date('Y-m-d H:i:s', $strtotime($buydate));