自动将数据从csv导入到经过验证的mysql表中

时间:2019-01-04 19:38:41

标签: php mysql csv

我有2张桌子:

product_category_master

id | product_category_name

product_master

id | product_category_id |产品名称

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

xyz_product_details.csv

id | product_category_name |产品名称

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

1 个答案:

答案 0 :(得分:-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)); 
}