簡體   English   中英

自動將數據從 csv 導入到帶有驗證的 mysql 表

[英]automatic importing of data from csv to a mysql table with validation

我有 2 張桌子:

product_category_master

身份證 | 產品類別名稱

product_master

身份證 | product_category_id | 產品名稱

csv文件中的數據格式如下:

xyz_product_details.csv

身份證 | product_category_name | 產品名稱

我正在嘗試編寫一個腳本,每次上傳新的 csv 文件時,該腳本都會自動從網絡服務器中的“數據”文件夾中讀取 csv 文件,它將從上述格式的 csv 文件中讀取數據,並根據 product_category_name 從product_category_master 表,獲取product_category_id,然后檢查product_category_id 和product_name 在product_master 表中的一行中是否存在,如果不存在則插入product_master 表中的記錄。 應該對 csv 文件中的所有記錄執行此操作。 任何人都可以幫助我如何做到這一點?

這是基本代碼,不過我還沒有測試過。 使產品 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)); 
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM