2014-08-30 58 views
0

我想從csv文件中獲取「datetime」並將其插入到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); 
+3

您似乎在格式化日期,但未將其傳遞到字符串中。 – 2014-08-30 14:43:50

+1

'$ date'!=='$ this-> date' ...更不用說,如果'$ this-> date'是一個DateTime對象,那麼format()方法的語法是錯誤的。友好的使用手冊 – 2014-08-30 14:45:23

+0

@GordonLinoff你可以舉個例子說明怎麼做嗎?我真的很感激。謝謝 – XhensB 2014-08-30 14:45:25

回答

0

$date$this->date不同的,這就是爲什麼你所得到的錯誤:

Notice: Undefined property: Import::$date Fatal error: Call to a member function format() on a non-object 
0

首先你要獲取日期格式化的值和格式都必須Y- - □不Yd-

$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); 
0

就讓MySQL處理date formatting爲您提供:

INSERT INTO logs(ID, User, Flag, Date) values('$data[0]', '$data[1]', '$data[2]', DATE_FORMAT('$myDate', '%d %b %Y %T:%f'));"; 

您可能還需要尋找到PDO和準備的語句,從而避免SQL注入。