2017-01-05 5 views
2


mysqlテーブルにデータを挿入する.csvファイルをアップロードするためのフォームがあります。ファイルには、 "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

ための機能がアップローダーにSQLインジェクション攻撃を実行する機会を与えながら車輪の再発明しようとする代わりのは、は、LOAD DATA INFILEのような機能が組み込まれての使用をしないで聞かせすることができます。 – 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]; 

あなたはこの

関連する問題