使用PHP将CSV导入MySQL

CSV import to MySQL using PHP

尝试使用PHP和CSV导入到MySQL DB的方式更新表。而且我需要一些帮助。

我有两个表:users和balance。

  • 个用户
    ID |用户登录|
    1 |名称1 |
    2 |名称2 |

  • 余额
    user_id | user_balance |
    1 | 1000 |
    2 | 2000 |

  • 查询操作:

    1
    2
    3
    SELECT users.user_login, balance.user_balance
    FROM  `users` ,  `balance`
    WHERE  `ID` =  `user_id`

    CSV文件具有以下结构:

    name1; 3000
    名称2; 5000

    但是我不知道如何用ID和user_id格式将这两个连接的表更新为CSV。

    我将很高兴为您提供任何帮助和建议。谢谢!


    首先,您从CSV文件中获取数据。

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    $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>\
    "
    ;
            $row++;
            for ($c=0; $c < $num; $c++) {
                echo $data[$c] ."<br />\
    "
    ;
            }
        }
        fclose($handle);
    }

    然后更新查询。

    1
    2
    3
    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']

    您可以尝试以下Update语句:

    1
    2
    3
    4
    UPDATE balance b
    JOIN users u ON u.ID = b.user_id
    SET b.user_balance = '@balance'
    WHERE u.user_login = '@name'

    其中@balance@nameCSV中的值。