Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/65.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
PHP将数据从一个表插入到另一个表_Php_Mysql_Sql - Fatal编程技术网

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

PHP将数据从一个表插入到另一个表,php,mysql,sql,Php,Mysql,Sql,我试图将数据从一个表插入到另一个表中,这是我收到的错误消息: 错误:在内容2中插入d1、d2、d3值John、Doo、24 “字段列表”中的未知列“John”错误:插入到content2 d1中, d2,d3值Mary,Moe,36 “字段列表”中的未知列“Mary”错误:在内容2中插入d1、d2、d3值Julie、Dooley、42 “字段列表”中的未知列“Julie”错误:插入到content2中 d1,d2,d3值John,Doo,24 “字段列表”中的未知列“John”错误:在内容2中插

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

错误:在内容2中插入d1、d2、d3值John、Doo、24

“字段列表”中的未知列“John”错误:插入到content2 d1中, d2,d3值Mary,Moe,36

“字段列表”中的未知列“Mary”错误:在内容2中插入d1、d2、d3值Julie、Dooley、42

“字段列表”中的未知列“Julie”错误:插入到content2中 d1,d2,d3值John,Doo,24

“字段列表”中的未知列“John”错误:在内容2中插入d1、d2、d3值Mary、Moe、36

“字段列表”中的未知列“Mary”错误:插入到content2 d1中, d2,d3值Julie,Dooley,42岁

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

以下是我的php代码:


我想不出是什么问题。请帮助

这可以通过直接sql完成

insert into content2
(d1, d2, d3)
select d1, d2, d3
from content

这可以通过直接sql实现

insert into content2
(d1, d2, d3)
select d1, d2, d3
from content

当PHP将插入查询发送到MySQL时,结果如下所示:

INSERT INTO content2 (d1, d2, d3) VALUES (John, Mary, Julie);
因为“John”、“Mary”和“Julie”周围没有引号,MySQL认为您指的是其他列名。快速而肮脏的解决方案是在查询中添加引号,但正如@tadman所说,您永远不应该使用这种类型的查询,而应该使用将变量添加到查询中

但是,如果您只想从一个表复制到另一个表,正如@Dan Bracuk所说,您可以通过一个查询来实现这一点:

INSERT INTO content2 (d1, d2, d3)
SELECT d1, d2, d3
FROM content

当PHP将插入查询发送到MySQL时,结果如下所示:

INSERT INTO content2 (d1, d2, d3) VALUES (John, Mary, Julie);
因为“John”、“Mary”和“Julie”周围没有引号,MySQL认为您指的是其他列名。快速而肮脏的解决方案是在查询中添加引号,但正如@tadman所说,您永远不应该使用这种类型的查询,而应该使用将变量添加到查询中

但是,如果您只想从一个表复制到另一个表,正如@Dan Bracuk所说,您可以通过一个查询来实现这一点:

INSERT INTO content2 (d1, d2, d3)
SELECT d1, d2, d3
FROM content

值$row1、$row2、$row3到值“$row1”、“$row2”、“$row3”警告:使用mysqli时,应使用参数化查询,并将用户数据添加到查询中。不要使用字符串插值或串联来完成此操作,因为这样会创建严重的错误。永远不要将原始用户数据直接放入查询中。更好的选择是使用准备好的语句来防止提供的错误或恶意信息破坏数据库或允许sql注入attacks@Orangepill一般来说是的,绝对是的,但正如丹在回答中指出的,这是数据库可以自己轻松解决的问题。@tadman true。。。只是没有看到解决方案通过了巨大的安全漏洞:值$row1、$row2、$row3到值“$row1”、“$row2”、“$row3”警告:使用mysqli时,您应该使用参数化查询,并将用户数据添加到查询中。不要使用字符串插值或串联来完成此操作,因为这样会创建严重的错误。永远不要将原始用户数据直接放入查询中。更好的选择是使用准备好的语句来防止提供的错误或恶意信息破坏数据库或允许sql注入attacks@Orangepill一般来说是的,绝对是的,但正如丹在回答中指出的,这是数据库可以自己轻松解决的问题。@tadman true。。。只是没有看到解决方案通过了巨大的安全漏洞: