[英]PHP - Import CSV file to mysql database Using LOAD DATA INFILE
[英]Import CSV timestamp into MySQL acceptable format while using LOAD DATA INFILE
我有一個帶有以下格式的時間戳的CSV文件
timestamp, day_chan2, day_chan3
01/02/2014 00:00, 9, 2
01/02/2014 00:00, 16, 5
我正在嘗試使用LOAD DATA INFILE將其導入MySQL數據庫
$query_name = "LOAD DATA INFILE ' "
. $file_path .
"' INTO TABLE '"
. $this->table_name .
" ' FIELDS TERMINATED BY '\,'
LINES TERMINATED BY '\\n'
IGNORE 1 LINES
(`time_stamp`,`day_chan2`,`day_chan3`)";
我的問題如下:將時間戳導入數據庫時,如何將其轉換為MySQL可接受的格式?
我現在對如何將時間戳更改為適當的時間戳一無所知,以后可以使用它進行查詢。
我從沒有嘗試過,但是您可以執行以下操作:
$query_name = "LOAD DATA INFILE ' "
. $file_path .
"' INTO TABLE '"
. $this->table_name .
" ' FIELDS TERMINATED BY '\,'
LINES TERMINATED BY '\\n'
IGNORE 1 LINES
(@mytimestamp,`day_chan2`,`day_chan3`)
SET time_stamp=STR_TO_DATE(@mytimestamp, '%d/%m/%Y %h:%i');"
MySQL文檔中有一些示例:
考慮到您的評論,MySQL STR_TO_DATE可能是執行此操作的最佳方法,請參見下文...
if (!($stmt = $mysqli->prepare("INSERT INTO ". $this->table_name . "(`time_stamp`,`day_chan2`,`day_chan3`) VALUES (STR_TO_DATE(?, 'd/m/y H:M'),?,?)"))) {
echo "Prepare failed: (" . $mysqli->errno . ") " . $mysqli->error;
}
for ($fields in $data) {
$stmt->bind_param('i', $fields[0]);
$stmt->bind_param('i', $fields[1]);
$stmt->bind_param('i', $fields[2]);
if (!$stmt->execute()) {
echo "Execute failed: (" . $stmt->errno . ") " . $stmt->error;
}
}
祝您好運,如果您需要進一步的幫助,請發表評論。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.