使用PHP将INSERT表转换为包含更多列的其他表

时间:2016-02-22 11:14:34

标签: php mysql

我想将数据库表插入到具有更多列的另一个数据库表中。我需要它的所有记录。我尝试的是以下哪个不起作用,并没有给我一个错误信息:

 $sql = mysqli_query($con, "SELECT * FROM table1");

 while ($row = mysqli_fetch_array($sql)) {
        $sql1 = mysqli_query($con, "INSERT INTO table2
                                    (uid,
                                    pid,
                                    tstamp,
                                    crdate)
                                   VALUES ('',
                                          '".$row['value1']."',
                                          '".$row['value2']."',
                                          '".$row['value3']."'");}

2 个答案:

答案 0 :(得分:4)

你可以直接这样做,这比获取数据并迭代它更快更好。

 insert into table2(uid,pid,tstamp,crdate) 
 select value1,value2,value3,value4 from table1

答案 1 :(得分:1)

你忘了关闭"

 mysqli_query($con, "INSERT INTO table2
                                    (uid,
                                    pid,
                                    tstamp,
                                    crdate)
                                   VALUES ('',
                                          '".$row['value1']."',
                                          '".$row['value2']."',
                                          '".$row['value3']."');");

你也可以通过选择进入查询来减少消耗时间:

INSERT INTO table2 (uid,pid,tstamp,crdate)
SELECT '',val1,val2,val3 FROM table1;