gpt4 book ai didi

php - 导出 CSV 中的选定行并导入回同一 CSV 文件以更新 PHP/MySQL 中的选定行

转载 作者:行者123 更新时间:2023-11-29 08:42:50 27 4
gpt4 key购买 nike

我有一个包含以下列的 mysql 表:

filterid    productid   value   groupid

我想将此表的行(仅限选定的行)导出到 CSV 文件。我知道如何进行导出部分。

例如,如果我根据产品 ID 导出了行,那么导出的行是:

4   13307   USA|Quebec|Rest of Canada   750
9 15963 USA|Quebec|Rest of Canada 1
9 13618 USA|Quebec|Rest of Canada 1
9 16210 USA|Quebec|Rest of Canada 1
9 16666 USA|Quebec|Rest of Canada 1

总共 100 行。

现在,我已将此内容导出到 CSV 文件中,并希望将其导入回我的 mysql 表,其中它应该仅更新与我导出的 CSV 文件中的产品 ID 匹配的行,而不会干扰表内容的其余部分。

可以这样做吗?

谷歌搜索后,我发现我可以使用此代码将 CSV 导入到表中

LOAD DATA LOCAL INFILE 'filename.csv' INTO TABLE my_table FIELDS
TERMINATED BY ','
ENCLOSED BY ''
LINES TERMINATED BY '\n'

请提出一种实现此目的的方法。

如果您需要,我可以为您提供更多示例代码。

谢谢!

最佳答案

我认为他问这个问题是因为他不知道如何将 INFILEWHERE 子句一起使用:

Now, I have exported this content into a CSV file and want to import it back to my mysql table where it should update only rows matching with the product id's which are in my exported CSV file without disturbing rest of the table content.

如果您想使用脚本来执行您提到的操作,您可以尝试以下操作:

// set up your database connection
$fp = fopen('your_csv_file.csv','r') or die("**! can't open file\n\n");

// loop through your lines
while($csv_line = fgetcsv($fp,1024)) {

$filterid = $csv_line[0];
$productid = $csv_line[1];
$value = $csv_line[2];
$groupid = $csv_line[3];

$update = "UPDATE your_table(filterid, productid, value, groupid) ";
$update .= "VALUES('$filterid', '$productid'; '$value'; '$goupid') WHERE productid='$productid'";

// run $update on your database
}

fclose($fp) or die("**! can't close file\n\n");

它至少应该为您指明正确的方向..

关于php - 导出 CSV 中的选定行并导入回同一 CSV 文件以更新 PHP/MySQL 中的选定行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13297658/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com