使用PHP将CSV导入MySQL
尝试使用PHP和CSV导入MySQL DB更新表。我需要一些帮助 我有两个表:用户和余额使用PHP将CSV导入MySQL,php,mysql,csv,Php,Mysql,Csv,尝试使用PHP和CSV导入MySQL DB更新表。我需要一些帮助 我有两个表:用户和余额 用户 ID |用户| 1 |名称1 | 2 |名称2 | 余额 用户id |用户余额| 1 | 1000 | 2 | 2000 | 查询操作: SELECT users.user_login, balance.user_balance FROM `users` , `balance` WHERE `ID` = `user_id` CSV文件具有以下结构: 名称1;3000 名称2;5000英镑
ID |用户|
1 |名称1 |
2 |名称2 |
用户id |用户余额|
1 | 1000 |
2 | 2000 |
SELECT users.user_login, balance.user_balance
FROM `users` , `balance`
WHERE `ID` = `user_id`
CSV文件具有以下结构:
名称1;3000名称2;5000英镑
但是我不知道如何更新这两个连接了ID和user_ID的表来形成CSV
我很乐意得到任何帮助和建议。谢谢 您可以尝试以下
更新语句:
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
的值,首先从CSV文件获取数据
$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);
}
这个问题可能重复的地方太广,也不清楚。一方面是数据负载。没有提到如何处理插入和更新丢失的第一个表数据。然后是带有连接的更新。有些人可能会选择加载数据填充(我的方法)。其他人走慢路线(对于大型表)并有PHP文件I/O。请不要对您的问题添加答案。用答案框代替(如果你的问题被重新打开)。我不认为这是同一个问题,因为问题不仅是关于MySQL查询,而且是关于数据库中的CSV导入。@Patrickhoffman我知道,但我没有找到那个框。因为问题被搁置?
UPDATE balance b JOIN users u ON u.ID = b.user_id
SET b.user_balance = $data['balance']
WHERE u.user_login = $data['user_login']