首页 > 解决方案 > 使用 PHP 将表 1 中的多个值插入表 2

问题描述

我尝试从表 1 中获取所有值,然后将它们推送到数组中。然后我将数组插入表 2,但我得到的错误是:“Illegal string offset 'name'”、“Illegal string offset 'lat'”、“Illegal string offset 'lng'” 我已经搜索过这个错误并且尝试修复它,但我不能。有人可以帮我吗?这是我的代码:

$query = "DELETE FROM gpsdata";
    $query_input = "SELECT name, lat, lng FROM gpsdata";
    $result = mysqli_query($connect, $query_input);
    while ($data = mysqli_fetch_array($result)) {
        if (is_array($data)) {
            $sql = array();
            foreach ($data as $row) {
                $sql[] = '(' . $row['name'] . ', ' . $row['lat'] . ', ' . $row['lng'] . ')';
            };
            $query2 = "INSERT INTO gpsdata_backup (name, lat, lng) VALUES ' . implode(',', $sql)'";
            $result_insert = mysqli_query($connect, $query2);
       }
}

标签: phpmysqli

解决方案


由于您没有对数据执行任何任务,为什么不通过直接使用 select 插入来在 mysql 中执行整个操作?

insert into `gpsdata_backup` ( `name`, `lat`, `lng` )
    select `name`, `lat`, `lng` from `gpsdata`;

IE:

$sql='insert into `gpsdata_backup` ( `name`, `lat`, `lng` )
    select `name`, `lat`, `lng` from `gpsdata`';
    
$result=$connect->query( $sql );

推荐阅读