小编典典

PHP将数据从一个表插入到另一个表

sql

我试图将数据从一个表插入到另一个表,这是我收到的错误消息:

错误:将INERT插入到content2(d1,d2,d3)值(John,Doo,24);

错误:在字段列表中插入未知列’John’错误:INSERT INTO content2(d1,d2,d3)VALUES(Mary,Moe,36);

‘字段列表’中的未知列’Mary’错误:INSERT INTO content2(d1,d2,d3)值(Julie,Dooley,42)

‘字段列表’中未知列’Julie’错误:INSERT INTO content2(d1,d2,d3)VALUES(John,Doo,24);

错误:在字段列表中插入未知列’John’错误:INSERT INTO content2(d1,d2,d3)VALUES(Mary,Moe,36);

错误:在’字段列表’中的未知列’Mary’错误:INSERT INTO
content2(d1,d2,d3)VALUES(Julie,Dooley,42);

“字段列表”中的未知列“ Julie”

这是我的PHP代码:

//Get Connection
require_once('connect.php');

//Get Data
$sql = "SELECT d1, d2, d3 FROM content";
$result = mysqli_query($con, $sql);

if (mysqli_num_rows($result) > 0) {
// output data of each row
    while($row = mysqli_fetch_assoc($result)) {
        $row1 = $row["d1"];
        $row2 = $row["d2"];
        $row3 = $row["d3"];

//Insert Data to another table
            $sql = "INSERT INTO content2 (d1, d2, d3)
            VALUES ($row1, $row2, $row3);";
            if (mysqli_multi_query($con, $sql)) {
                echo "New records created successfully";
            } else {
                echo "Error: " . $sql . "<br>" . mysqli_error($con);
            }
        //echo "id: " . $row["d1"]. " - Name: " . $row["d2"]. " " . $row["d3"]. "<br>";
    }
} else {
    echo "0 results";
}

我不知道是什么问题。请帮忙


阅读 483

收藏
2021-04-07

共1个答案

小编典典

当PHP将您的插入查询发送到MySQL时,它最终看起来像这样:

INSERT INTO content2 (d1, d2, d3) VALUES (John, Mary, Julie);

因为在“ zhohohn”,“淢ary”和“
zhulie”之间没有引号,所以MySQL认为您是在指其他列名。快速而肮脏的解决方案是在查询中添加引号,但是正如@tadman所说,您永远不要使用这种查询样式,而应该使用bind_param将变量添加到查询中。

但是,如果您只想从一张表复制到另一张表(如@Dan Bracuk所说),则可以使用一个查询来做到这一点:

INSERT INTO content2 (d1, d2, d3)
SELECT d1, d2, d3
FROM content
2021-04-07