Sql表只导入第一个coloumn [英] Sql table importing only first coloumn
问题描述
所以我想把一个csv文件上传到一个sql表。这是我的代码:
So I want to upload a csv file into a sql table. Here is my code:
<?php
include "connection.php"; //Connect to Database
$deleterecords = "TRUNCATE TABLE axioma_ordini"; //empty the table of its current records
mysql_query($deleterecords);
//Upload File
if (isset($_POST['submit'])) {
if (is_uploaded_file($_FILES['filename']['tmp_name'])) {
echo "<h1>" . "File ". $_FILES['filename']['name'] ." uploaded successfully." . "</h1>";
echo "<h2>Displaying contents:</h2>";
readfile($_FILES['filename']['tmp_name']);
}
//Import uploaded file to Database
$handle = fopen($_FILES['filename']['tmp_name'], "r");
while (($data = fgetcsv($handle, 1000, ",")) !== FALSE) {
$import="INSERT into axioma_ordini(`id`, `Famiglia`, `Cod Cliente`, `Ragione Sociale`, Articolo, Descrizione, Tipo, `Valore Euro`, Valuta, `Valore in Valuta`, Cambio, `Mese Competenza`, Anno, `Cir Medio`, Giorni, Satellite, `Satellite per Risorsa`, NumeroDocumento, `Data Doc`, `Nome Nave`, `Modem S/N`, `Burst Fwd`, `Burst Rtn`, Condivisione, `Cir Fwd`, `Cir Rtn`, `Cir Tot`, Business, Tecnologia,`Data Scadenza Ordine`, Network, Transponder, Nazione) values('','$data[0]','$data[1]','$data[2]','$data[3]','$data[4]','$data[5]','$data[6]','$data[7]','$data[8]','$data[9]','$data[10]','$data[11]','$data[12]','$data[13]','$data[14]','$data[15]','$data[16]','$data[17]','$data[18]','$data[19]','$data[20]','$data[21]','$data[22]','$data[23]','$data[24]','$data[25]','$data[26]','$data[27]','$data[28]','$data[29]','$data[30]','$data[31]')";
mysql_query($import) or die(mysql_error());
}
fclose($handle);
print "Import done";
//view upload form
}else {
print "Upload new csv by browsing to file and clicking on Upload<br />\n";
print "<form enctype='multipart/form-data' action='upload.php' method='post'>";
print "File name to import:<br />\n";
print "<input size='50' type='file' name='filename'><br />\n";
print "<input type='submit' name='submit' value='Upload'></form>";
}
?>
它成功导入,但第一个collo:Famiglia(和id工作)。其余的没有值或0值。我要导入的文件具有数据。另外,在famiglia中,它是varchar 5,它从下一个coloumn获取第一个数字。所以,而不是biz,它apperas biz; 8(8是从下一个coloumn的第一个数字)。
任何人都知道问题在哪里?
谢谢!
It imports successfully, but ony the first coloumn: Famiglia (and the id works). the rest of them have no value or 0 value. The file I want to import has data. Also, in famiglia, which is varchar 5, it takes the first number from the next coloumn. So, instead of biz, it apperas biz;8 (8 being the first number from the next coloumn). Anyone knows where the problem could be? Thanks!
推荐答案
我发现了什么问题。这是一个错误的分隔符:,而不是;
I've found what the issue was. It was a wrong delimiter: , instead of ;
($ data = fgetcsv($ handle,1000,,)
($data = fgetcsv($handle, 1000, ",")
应为
($ data = fgetcsv($ handle,1000,;)
($data = fgetcsv($handle, 1000, ";")
也许这有助于某人......
Maybe this helps somebody...
这篇关于Sql表只导入第一个coloumn的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!