Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/58.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
导出CSV中的选定行并导入回相同的CSV文件以更新PHP/MySQL中的选定行_Php_Mysql_Csv - Fatal编程技术网

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

导出CSV中的选定行并导入回相同的CSV文件以更新PHP/MySQL中的选定行,php,mysql,csv,Php,Mysql,Csv,我有一个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

我有一个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'
请提出实现这一目标的方法

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


谢谢大家!

我认为他问这个问题是因为他不知道如何用
WHERE
子句填充

现在,我已将此内容导出到CSV文件中,并希望导入 它将返回mysql表,在那里它应该只更新匹配的行 带有产品id的,它们位于我导出的CSV文件中,没有 干扰了表中的其他内容

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

// 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");

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

您已经找到了CSV导入功能。什么不管用?@Groundshaker如果你发布了好的问题/答案,人们不会投反对票。要求人们不要投反对票并不会降低他们投反对票的可能性,事实上,这可能会使他们更有可能投反对票,至少这让我想投反对票。另外,我不打算否决你的问题。所以使用PHP是可以的,对吗?我刚刚写了一个脚本,可以解析CSV文件。@Mario:我不熟悉它的WHERE子句。下面burmat的例子看起来很完美,我将尝试一下。很好!!让我在本地主机上测试它,然后再返回给您!非常感谢。