无法将csv中的日期时间插入mysql


Cannot insert datetime from csv into mysql

我正试图从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注入。