Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/string/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用PHP将CSV导入MySQL_Php_Mysql_Csv - Fatal编程技术网

使用PHP将CSV导入MySQL

使用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英镑

尝试使用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和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']