0
我試圖上傳CSV文件以更新MySQL表。在MySQL DB中加載CSV文件
我已經完成了上傳部分,但是當我嘗試將CSV數據插入到數據庫中時,它將不起作用,並且不會顯示任何錯誤。
對我而言,奇怪的是,當我在phpMyAdmin的SQL解釋器中嘗試使用相同的SQL命令確切的時,該命令起作用並且所有行都被插入。
這裏是想以插入的DB行我的代碼的摘錄:
$name= '/tmp/uploaded/tmp.csv';
$result= move_uploaded_file($_FILES['CSVfile']['tmp_name'], $name);
chmod ($name, 0777);
if (!$result){
echo "Fail while moving file";
}
else{
echo "Success";
//$connect-> query('DELETE from db_name.table_name WHERE 1;');
$req=$connect->query("LOAD DATA INFILE '/tmp/uploaded/tmp.csv' INTO TABLE db_name.table_name
FIELDS ESCAPED BY '\\'
TERMINATED BY ';'
LINES TERMINATED BY '\r\n';"); //<- This command works perfectly on phpMyAdmin SQL interpreter
if ($req){
echo "Success";
}
else{
echo "Fail with the INSERT";
var_dump($req); //Shows "bool(false)"
}
}
該文件包含〜16,500行和重量3.14Mo
你有一些想法或解決方案請給我?
謝謝!
其中一個原因可能是,一旦通過http上傳,行可能不會由'\ r \ n'終止。在編寫和修改load命令之前,您可以用'\ n'替換所有的'\ r',只檢查'\ n' –
*它不起作用,並且不會顯示任何錯誤* ...執行*成功*消息回聲?你確定你在phpMyAdmin中運行命令的確切數據庫與你在一般的php中連接的命令是一樣的嗎? – Parfait
實際上,一旦CSV文件上傳到服務器上,我只是將它移動到/ tmp /上傳的目錄中,但我不修改它。但是,我試着只檢查'\ n',並簡單地刪除檢查行尾的行,但它保持失敗...... – toximorph