我需要一個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