尝试使用PHP和CSV导入MySQL DB更新表。我需要一些帮助。
我有两个表:用户和余额。
用户
的 ID | USER_LOGIN |
1 | name1 |
2 | name2 |
平衡
的 USER_ID | user_balance |
1 | 1000 |
2 | 2000 |
查询操作:
SELECT users.user_login, balance.user_balance
FROM `users` , `balance`
WHERE `ID` = `user_id`
CSV文件具有以下结构:
NAME1; 3000
NAME2; 5000
但我不知道如何使用ID和user_id格式CSV更新两个连接的表。
我很乐意提供任何帮助和建议。谢谢!
答案 0 :(得分:4)
首先从CSV文件中获取数据。
public void runThread(MyThreadImpl myThreadImpl) {
synchronized (this) {
this.myThreadImpl = myThreadImpl;
notify();
}
}
synchronized public void run() {
while (true)
try {
wait();
Global.myReentrantLock.lock();
try {
try {
myThreadImpl.call();
} catch (FileException e) {
// trace e
} catch (RuntimeException e) {
// trace e
} catch (Exception e) {
// trace e
}
} finally {
Global.myReentrantLock.unlock();
}
} catch (InterruptedException e) {
// trace e
} catch (Exception e) {
// trace e
}
}
然后更新查询。
$row = 1;
if (($handle = fopen("data.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++) {
echo $data[$c] . "<br />\n";
}
}
fclose($handle);
}
答案 1 :(得分:1)
您可以尝试此Update
声明:
UPDATE balance b
JOIN users u ON u.ID = b.user_id
SET b.user_balance = '@balance'
WHERE u.user_login = '@name'
@balance
和@name
是CSV
的值。