[英]Iterate through CSV files in a folder and load data into MySQL using PHP
我使用以下代碼遍歷文件夾中的文件,並將數據加載到MYSQL表中。 我無法完全正常工作。 有更好的解決方案嗎?
if ($handle = opendir('C:\Documents and Settings\Desktop\CSV Files')) {
while(false !== ($entry = readdir($handle)))
{
mysql_query("LOAD DATA LOCAL INFILE %handle
INTO TABLE main_table
FIELDS
TERMINATED BY ','
OPTIONALLY ENCLOSED BY '"'
ESCAPED BY '"'
LINES TERMINATED BY '\r\n'
IGNORE 1 LINES")
}
}
您的代碼有太多錯誤,很難選擇從哪里開始。
%handle
不是PHP變量,而且是錯誤的變量。 $entry
只是文件名,而不是完整路徑。 mysql_query()
調用的末尾沒有分號。 "
,兩者均未轉義。 echo
顯查詢而不是運行查詢,以確保它在無法正常工作時正確地構成。 mysql_*
函數已被棄用,您應該使用PDO或MySQLi。 所以這應該可以工作:
<?php
error_reporting(E_ALL);
define('DEBUG', true);
$basedir = 'C:\\Documents and Settings\\Desktop\\CSV Files\\';
if ($handle = opendir($basedir)) {
while(false !== ($entry = readdir($handle))) {
$query = "LOAD DATA LOCAL INFILE $basedir$entry
INTO TABLE main_table
FIELDS
TERMINATED BY ','
OPTIONALLY ENCLOSED BY '\"'
ESCAPED BY '\\'
LINES TERMINATED BY '\r\n'
IGNORE 1 LINES");
if(DEBUG) { echo $query . "\n"; }
if(!mysql_query($query)) {
die('Query failed: ' . mysql_error());
}
}
} else {
echo "Could not open $basedir";
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.