Php Mysql查询并查找值是否存在
我用这段代码来比较和发现两个CSV文件(每个文件有一列,每行有一个EAN代码)在两个方向上的差异:Php Mysql查询并查找值是否存在,php,mysql,Php,Mysql,我用这段代码来比较和发现两个CSV文件(每个文件有一列,每行有一个EAN代码)在两个方向上的差异: <?php mysql_connect('LOCALHOST', 'db', 'passwd') or die(mysql_error()); mysql_select_db("db") or die(mysql_error()); $update_table = "ps_product"; $file1 = file('1.csv'); $file2 = file('2.csv
<?php
mysql_connect('LOCALHOST', 'db', 'passwd') or die(mysql_error());
mysql_select_db("db") or die(mysql_error());
$update_table = "ps_product";
$file1 = file('1.csv');
$file2 = file('2.csv');
$diff = array_diff($file1, $file2);
$diff2 = array_diff($file2, $file1);
$diffjoined = array_merge($diff, $diff2);
?>
我假设您的
$diffjoined
是代码中ean13的列表
您的SQL查询已关闭
$eans = "'".implode("','", $diffjoined)."'";
$q = "UPDATE $update_table SET quantity='0' WHERE ean13 IN ($eans)";
mysql_query($q);
你的问题是什么?请分享一个你的csv文件的例子。前两行应该很好。@hofan41我的问题是如何验证合并的数组中是否有相同的值(ean代码),对应于DB,找到后,将其更新为0数量。@AlanAsher 1.csv:000000000 1 000000000 2 000000000 3 000000000 4 000000000 7文件2.csv:000000000 1 000000000 3 000000000 5 000000000 4 000000000 7列,两个文件每行1个代码。好的,谢谢!但是它会在更新之前验证数据库中是否已经存在要更新的ean吗?MySQL只会更新匹配的行,所以如果您的数据库中有eans=1、3、5、6并且只有5和6,那么只有5和6会被更新。我不知道为什么,但没有更新。ean代码列表正确显示。有什么问题吗?
$eans = "'".implode("','", $diffjoined)."'";
$q = "UPDATE $update_table SET quantity='0' WHERE ean13 IN ($eans)";
mysql_query($q);