Вставка записи из файла CSV в таблицу базы данных не будет извлекать запись из первого столбца в серии

Я вышлю вам код, который я использовал для вставки данных из CSV-файла в таблицу базы данных, но он не будет вставлять данные с начала и непрерывно в последнюю запись, вместо этого он выбирает запись случайным образом, пожалуйста, предложите мне изменения в моем текущем коде, чтобы он будет извлекать запись от начала непрерывной до последней выборки каждой записи из файла CSV

 <?php
$connect = mysql_connect("localhost","root","");
set_time_limit(0);
if (!$connect)
{
die('Could not connect to MySQL: ' . mysql_error());
}
$cid=mysql_select_db("bond1",$connect);
define("CSV_PATH","D:/wamp/www/csvfile/");

$csv_file=CSV_PATH."file.csv";
$csvfile=fopen($csv_file, 'r');
$theData=fgets($csvfile);
$i=0;

while(!feof($csvfile))
{
$csv_data[] = fgets($csvfile,1024);
$csv_array=explode(",", $csv_data[$i]);
$insert_csv=array();
$insert_csv['name']=$csv_array[0];
$insert_csv['address']='http://'.$csv_array[1];
$insert_csv['duns_number']=$csv_array[2];
$insert_csv['idnum']=$csv_array[3];

$query="insert into  companyinfo(name,address,duns_number,id_number)values('".$insert_csv['name']."','".$insert_csv['address']."','".$insert_csv['duns_number']."','".$insert_csv['idnum']."')";
$n=mysql_query($query,$connect);
++$i;
}
fclose($csvfile);
echo "File data successfully imported to database!!";
mysql_close($connect);
?>

-1

Решение

http://php.net/manual/en/function.str-getcsv.php

Используйте эту функцию для автоматического анализа csv в массив.

0

Другие решения

Вместо того, чтобы проверять в то время как цикл feof указателя файла

лайк while(!feof($csvfile))

переместить fgets($csvfile,1024); внутри цикла

 while (($csv_data = fgets($csvfile, 4096)) !== false) {

и измените свой код ниже. надеюсь, это исправит вашу проблему.

0

Это поможет вам в дальнейшем

<?php

set_time_limit(0);
$i = 0;

//create database connection
$con=mysqli_connect("localhost","root","","my_db");

// Check connection
if (mysqli_connect_errno())
{
echo "Failed to connect to MySQL: " . mysqli_connect_error();
}

while (!feof($csvfile))
{
$csv_data = fgets($csvfile, 1024);

//if it is first row skip here  || if any value is empty then skip the row
if($i==0 ||
(empty($csv_array[0]) ||
empty($csv_array[1]) ||
empty($csv_array[2]) ||
empty($csv_array[3])))
{
++$i;

//continue the loop
continue;
}

$csv_array = explode(",", $csv_data);
$insert_csv = array();
$insert_csv['name'] = $csv_array[0];
$insert_csv['address'] = 'http://' . $csv_array[1];
$insert_csv['duns_number'] = $csv_array[2];
$insert_csv['idnum'] = $csv_array[3];

$sql = "INSERT INTO companyinfo(name,address,duns_number,id_number)
VALUES('" . $insert_csv['name'] . "',‌
​'" . $insert_csv['address'] . "',
'" . $insert_csv['duns_number'] . "',
'" . $insert_csv['idn‌​um'] . "')";

//insert the query
if (!mysqli_query($con,$sql))
{
die('Error: ' . mysqli_error($con));
}
}
0
По вопросам рекламы [email protected]