从csv到mysql表的上传数据的唯一ID

时间:2016-02-15 07:40:26

标签: php mysql

我正在尝试将数据从csv文件导入mysql table.from下面的代码我可以将我的csv数据导入到mysql表中。在该mysql表中有一个名为" ord" 的列,在从csv到mysql表的数据上传过程中,每次都应该具有相同的唯一ID(需要递增1)。我试过更新查询,但增加后,它给其他下一次上传提供相同的唯一编号。不知道我哪里出错了,需要你的建议来纠正我的代码。



$connect = mysql_connect('localhost','root','');

if (!$connect) {
 die('Could not connect to MySQL: ' . mysql_error());
}

//your database name
$cid =mysql_select_db('upload',$connect);

// path where your CSV file is located
define('CSV_PATH','D:/');

// Name of your CSV file
$csv_file = CSV_PATH . "Book1.csv"; 


if (($handle = fopen($csv_file, "r")) !== FALSE) {
   fgetcsv($handle);   
   while (($data = fgetcsv($handle, 1000, ",")) !== FALSE) {
        $num = count($data);
        for ($c=0; $c < $num; $c++) {
          $col[$c] = $data[$c];
        }

 $col1 = $col[0];
 $col2 = $col[1];
 $col3 = $col[2];
 $col4 = $col[3];
  $col5 = $col[4];
  
  // SQL Query to insert data into DataBase

$query = "INSERT INTO unique_entry(ord,size,colour,qty,Creation_Date) VALUES('".$col1."','".$col2."','".$col3."','".$col4."',now())";
$s     = mysql_query($query, $connect );
 }
 mysql_query("
    UPDATE unique_entry 
    SET ord= ' ".$col1." ' + 1 
    WHERE Creation_Date = now()
");
    fclose($handle);
}
echo "File data successfully imported to database!!";
mysql_close($connect);
&#13;
&#13;
&#13;

1 个答案:

答案 0 :(得分:1)

您正在while循环之外编写更新查询。因此查询不会一直执行。仅限最后一个条目,它将更新。所以我们可以做两件事。 1)在while循环中包含更新查询。 2)在插入查询和执行查询之前增加$ col1值。然后它适用于所有条目。