Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/288.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 避免在mysql导入上\r\n\n_Php_Mysql_Csv_Import - Fatal编程技术网

Php 避免在mysql导入上\r\n\n

Php 避免在mysql导入上\r\n\n,php,mysql,csv,import,Php,Mysql,Csv,Import,我有以下代码将CSV文件导入MYSQL数据库,但在导入时遇到了一些问题 $csv_file = CSV_PATH . "resultsimport.csv"; // Name of your CSV file $csvfile = fopen($csv_file, 'r'); $theData = fgets($csvfile); $i = 0; while (!feof($csvfile)) { $csv_data[] = fgets($csvfile); $csv_array = explo

我有以下代码将CSV文件导入MYSQL数据库,但在导入时遇到了一些问题

$csv_file = CSV_PATH . "resultsimport.csv"; // Name of your CSV file
$csvfile = fopen($csv_file, 'r');
$theData = fgets($csvfile);
$i = 0;
while (!feof($csvfile)) {
$csv_data[] = fgets($csvfile);
$csv_array = explode(",", $csv_data[$i]);
$insert_csv = array();
$insert_csv['ID'] = $csv_array[0];
$insert_csv['SerialNo'] = $csv_array[1];
$insert_csv['ChannelNo'] = $csv_array[2];
$insert_csv['IL850'] = $csv_array[3];
$insert_csv['IL1300'] = $csv_array[4];
$insert_csv['IL1310'] = $csv_array[5];
$insert_csv['IL1550'] = $csv_array[6];
$insert_csv['RL850'] = $csv_array[7];
$insert_csv['RL1300'] = $csv_array[8];
$insert_csv['RL1310'] = $csv_array[9];
$insert_csv['RL1550'] = $csv_array[10];
$query = "INSERT INTO results(ID,SerialNo,ChannelNo,IL850,IL1300,IL1310,IL1550,RL850,RL1300,RL1310,RL1550)
VALUES('".$insert_csv['ID']."','".$insert_csv['SerialNo']."','".$insert_csv['ChannelNo']."','".$insert_csv['IL850']."','".$insert_csv['IL1300']."','".$insert_csv['IL1310']."','".$insert_csv['IL1550']."','".$insert_csv['RL850']."','".$insert_csv['RL1300']."','".$insert_csv['RL1310']."','".$insert_csv['RL1550']."')";
$n=mysql_query($query, $connect );
$i++;
}
fclose($csvfile);

echo "File data successfully imported to database";
mysql_close($connect);
以下是CSV文件中前两行的示例:

ID,SerialNo,ChannelNo,IL850,IL1300,IL1310,IL1550,RL850,RL1300,RL1310,RL1550
1405230001-A-MTP-1-01,1405230001,A-MTP-1-1,0.320,0.150,,,,,,
如您所见,其中两列中只有数据,但在某些导入中,最后一列中将有要导入的数据

如果最后一列中没有数据,则会出现问题。我的导入过程会将数据\r\n\添加到数据库中

我怎样才能避免呢


最后,我在import上还有一个空行。

PHP5有一个内置函数,可以为您解析CSV。这比依赖explode要好(explode对于可能包含逗号的引号括起来的文本很幼稚。空行将导致一个空的
$data
数组,因此请对此进行测试并跳过它们

while (($data = fgetcsv($csvfile, 1000, ",")) !== FALSE) {
    if (empty($data) continue;
    // rest of data manipulation continues
}
旁注:您不应该使用
mysql.*
函数系列。该扩展长期以来一直被弃用。您应该使用mysqli或PDO连接到数据库,并使用准备好的查询来防范SQL注入攻击