我试图将数据从一个表插入到另一个表,这是我收到的错误消息:
错误:将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”
错误:将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);
错误:在’字段列表’中的未知列’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"; }
我不知道是什么问题。请帮忙
当PHP将您的插入查询发送到MySQL时,它最终看起来像这样:
INSERT INTO content2 (d1, d2, d3) VALUES (John, Mary, Julie);
因为在“ zhohohn”,“淢ary”和“ zhulie”之间没有引号,所以MySQL认为您是在指其他列名。快速而肮脏的解决方案是在查询中添加引号,但是正如@tadman所说,您永远不要使用这种查询样式,而应该使用bind_param将变量添加到查询中。
bind_param
但是,如果您只想从一张表复制到另一张表(如@Dan Bracuk所说),则可以使用一个查询来做到这一点:
INSERT INTO content2 (d1, d2, d3) SELECT d1, d2, d3 FROM content