2017-01-05 71 views
2


我有一個表單用於上傳.csv文件以在mysql表中插入數據。該文件具有格式爲「dd/mm/yyy」的日期列。不過,我想以mysql日期格式「yyyy-mm-dd」插入這個日期字符串。到目前爲止,我有以下代碼。
在插入之前將字符串轉換爲mysql日期格式

//parse data from csv file line by line 
     while(($line = fgetcsv($csvFile)) !== FALSE){ 
     //insert member data into database 
     $db->query("INSERT INTO txns (txn_date, description, amount, status) VALUES ('".$line[0]."','".$line[1]."','".$line[2]."','".$line[3]."','".$line[3]."')"); 
      } 
     } 

     //close opened csv file 
     fclose($csvFile); 

請幫忙日期字符串到MySQL日期(YYYY-MM-DD)格式轉換。

+1

的功能,讓我們不能利用內置在像LOAD DATA INFILE的功能,而是嘗試,同時給予上載有機會進行SQL注入攻擊推倒重來。 – e4c5

+0

@ e4c5嗯,你可以讓'LOAD DATA INFILE'自動進行日期轉換嗎? – RiggsFolly

+0

取決於文本,是@RiggsFolly,你可以做到這一點 – e4c5

回答

2

試試這個:

$date = date('Y-m-d', strtotime($line[0])); 
// convert date to yyyy-mm-dd 

,並使用$日期作爲列txn_date

1

的價值你可以這樣說:

$var = '05/01/2017'; 
$date = str_replace('/', '-', $var); 
$result = date('Y-m-d', strtotime($date)); 

輸出:2017- 01-05。

0
// date in dd/mm/yyyy format 
$date = "05/01/2017"; 

//Explode by/to get an array with day, month, year in separate indexes 
$dateArray = explode("/", $date); 

//Concatenate year, month and day into any format you want. 
$newDate = $dateArray[2] . "-" . $dateArray[1] . "-" . $dateArray[0]; 

可以彌補這方面

相關問題