我需要一个PHP脚本,它将更新现有的MySQL表格,从CSV获取数据。表字段hasweb
需要更新,比较字段consultant_id
。使用PHP从CSV更新MySql表格
因此MySQL查询应该是
UPDATE user_data
SET hasweb="something"
WHERE consultant_id = "something";
请帮我写一个PHP脚本,根据需要,可以执行这个查询多次,这取决于CSV数据。
我需要一个PHP脚本,它将更新现有的MySQL表格,从CSV获取数据。表字段hasweb
需要更新,比较字段consultant_id
。使用PHP从CSV更新MySql表格
因此MySQL查询应该是
UPDATE user_data
SET hasweb="something"
WHERE consultant_id = "something";
请帮我写一个PHP脚本,根据需要,可以执行这个查询多次,这取决于CSV数据。
我已经写了小PHP脚本来实现这一点很多次,有很多种方法去了解它:
最好根据我的经验是用PHP所提供的CSV功能,看看fgetcsv(),因为手动打开文件并逐行阅读并解析可能会导致并发症。
现在你只需通过CSV所有行中循环,动态准备查询并执行它,例如(假设0列有ID和第1列有“hasweb”)
<?php
if (($handle = fopen("input.csv", "r")) !== FALSE)
{
while (($data = fgetcsv($handle, 1000, ",")) !== FALSE)
{
mysql_query(UPDATE user_data SET hasweb="{$data[1]}" WHERE consultant_id = "{$data[0]}");
}
fclose($handle);
}
?>
希望有所帮助。如果仍然卡住,请问我:)
您可以使用php函数fgetcsv。
您可以使用此功能从CSV文件中的所有数据到PHP。 例如,
$row = 1;
if (($handle = fopen("your_file.csv", "r")) !== FALSE) {
while (($data = fgetcsv($handle, 1000, ",")) !== FALSE) {
$num = count($data);
echo "<p> $num fields in line $row: <br /></p>\n";
$row++;
for ($c=0; $c < $num; $c++) {
$SQL = 'UPDATE table_name SET col1=val1 WHERE con1';
execute($SQL);
}
}
fclose($handle);
}
明白了@BlackDivine,非常感谢。 – IFightCode
很高兴帮助你,没有问题:) – BlackDivine
嘿@BlackDivine - 为什么你在那个fgetcsv函数中使用1000的长度?我试图做同样的事情,原来的海报想要做的,我很好奇。谢谢!! – Kale