我在尝试将日期插入 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;
}
第一个被注释掉的行不会做任何事情,脚本执行时没有错误,但是,在此之后数据库中没有任何变化。
当前的方法会导致 fatal error ,指出函数名称必须是此行中的字符串。
其实我关注了this thread on SO , 但不能将日期传递到 MySQL...
谁能帮我看看哪里不对?
在这种情况下,您将如何做到正确?
很抱歉提出这样一个熟练的问题,非常感谢。
更新:
感谢您提醒我这一点,这里是 html 输出的确切错误消息:
fatal error :函数名称必须是 C:\xampp\htdocs\comic\app\insertBookIntoDB.php 中第 85 行的字符串
该行以哪个点开始
$mysqlDateString = date('Y-m-d H:i:s', $strtotime($buydate));
最佳答案
在下一行中:
$mysqlDateString = date('Y-m-d H:i:s', $strtotime($buydate));
这应该是:
$mysqlDateString = date('Y-m-d H:i:s', strtotime($buydate));
(例如,删除函数中的美元)?
关于PHP - 将日期插入 MySQL 时出错,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2780384/