为了账号安全,请及时绑定邮箱和手机立即绑定

使用 PHP 将表 1 中的多个值插入到表 2 中

使用 PHP 将表 1 中的多个值插入到表 2 中

PHP
largeQ 2023-10-01 15:41:40
我尝试从表 1 中获取所有值,然后将它们推入一个数组中。然后我将数组插入表2,但收到错误消息:“非法字符串偏移量'name'”,“非法字符串偏移量'lat'”,“非法字符串偏移量'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);       }}
查看完整描述

2 回答

?
海绵宝宝撒

TA贡献1809条经验 获得超8个赞

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


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 );


查看完整回答
反对 回复 2023-10-01
?
慕斯709654

TA贡献1840条经验 获得超5个赞

就这样吧。非法的情况offset error即将到来,因为您有一个不必要的inner foreach loop值,因此在数组中找不到这些值$row。这不是必需的


// Array declaration to be on top

$sql = array();

$query_input = "SELECT name, lat, lng FROM gpsdata";

$result = mysqli_query($connect, $query_input);


while ($data = mysqli_fetch_array($result)) {


    if (is_array($data)) {


        // Enclose string values in quotes

        $sql[] = '("' . $data['name'] . '", "' . $data['lat'] . '", "' . $data['lng'] . '")';

        

   }


// Final insert should not be inside the loop 

$query2 = "INSERT INTO gpsdata_backup (name, lat, lng) VALUES ".implode(",",$sql);

$result_insert = mysqli_query($connect, $query2);


查看完整回答
反对 回复 2023-10-01
  • 2 回答
  • 0 关注
  • 94 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信