【问题标题】:automatic importing of data from csv to a mysql table with validation自动将数据从 csv 导入到带有验证的 mysql 表
【发布时间】:2019-01-04 19:38:41
【问题描述】:

我有两张桌子:

product_category_master

标识 |产品类别名称

product_master

标识 | product_category_id |产品名称

csv文件中的数据格式如下:

xyz_product_details.csv

标识 |产品类别名称 |产品名称

我正在尝试编写一个脚本,该脚本会在每次上传新的 csv 文件时自动从网络服务器中的“数据”文件夹中读取一个 csv 文件,并且它会从上述格式的 csv 文件中读取数据并针对数据进行验证product_category_name 从product_category_master 表中取出product_category_id,然后检查product_category_id 和product_name 是否存在于product_master 表的一行中,如果不存在则插入product_master 表中的记录。应该对 csv 文件中的所有记录执行此操作。谁能帮助我如何做到这一点?

【问题讨论】:

标签: php mysql csv


【解决方案1】:

这是基本代码,不过我还没有测试过。使产品 id 或名称唯一,以避免数据库表中的重复。是的。但是代码请求没有完成!!在这里!!!

 $handle =  fopen('data/yourcsvfilename.csv', 'r');
$conn = mysqli_connect('localhost', 'root','','databasename');
    while($data = fgetcsv($handle)){
$id = $data[0];
$category = $data[1];
$product = $data[2];

$qgetcatid = "select id from product_category_master where category = '{$category}'";
$rgetcatid = mysqli_query($conn, $qgetcatid) or die (mysqli_error($conn));  

$rgetcatid = mysqli_fetch_assoc($rgetcatid);

$catid = $rgetcatid[0];

$qi = "insert ignore into product_master set product_name = '{$product}', id = '{$id}', product_cat_id = '{$catid}'"; 
$rgetcatid = mysqli_query($conn, $qi) or die (mysqli_error($conn)); 
}

【讨论】:

  • 感谢您的宝贵意见。一定会试试的
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2011-03-14
  • 1970-01-01
  • 2013-12-21
  • 1970-01-01
  • 1970-01-01
  • 2015-02-07
  • 1970-01-01
相关资源
最近更新 更多