我正试图从csv文件中获取一个"日期时间",并将其插入MySql数据库。我做错了什么?提前感谢!
while (($data = fgetcsv($handle, 1000, ",")) !== FALSE)
{
$date = new Datetime();
$this->date->format('Y-d-m H:i:s', ($data[3]));
$sql = "INSERT INTO logs(ID, User, Flag, Date) values('$data[0]', '$data[1]', '$data[2]', '$data[3]')";
$insert = $this->dataBase->getData($sql);
$date
与$this->date
不同,这就是为什么会出现错误:
Notice: Undefined property: Import::$date Fatal error: Call to a member function format() on a non-object
首先,您必须获得日期格式的值,并且格式必须是Y-m-d而不是Y-d-m:
$date = new Datetime($data[3]);
$myDate = $date->format('Y-m-d H:i:s');
$sql = "INSERT INTO logs(ID, User, Flag, Date) values('$data[0]', '$data[1]', '$data[2]', '$myDate')";
$insert = $this->dataBase->getData($sql);
只需让MySQL为您处理日期格式:
INSERT INTO logs(ID, User, Flag, Date) values('$data[0]', '$data[1]', '$data[2]', DATE_FORMAT('$myDate', '%d %b %Y %T:%f'));";
您可能还想研究PDO和准备好的语句,以避免SQL注入。