SQL/PHP插入列从一个表到另一个表
大家好,我正在编写简单的时事通讯脚本,我有两个小组,每个小组有两个不同的表格 我想将订阅者从一个组移动到另一个组,我放置了这个查询,它可以工作:SQL/PHP插入列从一个表到另一个表,php,insert,Php,Insert,大家好,我正在编写简单的时事通讯脚本,我有两个小组,每个小组有两个不同的表格 我想将订阅者从一个组移动到另一个组,我放置了这个查询,它可以工作: $sql = "INSERT INTO newsletter_subscribers2 SELECT * FROM newsletter_subscribers WHERE id='".$_GET['nid']."'"; 然而,在移动一些以前的订阅者之后,我得到了重复输入键的错误,因为我使用ID移动了supose查询,所以我只想要move、name、
$sql = "INSERT INTO newsletter_subscribers2 SELECT * FROM newsletter_subscribers WHERE id='".$_GET['nid']."'";
然而,在移动一些以前的订阅者之后,我得到了重复输入键的错误,因为我使用ID移动了supose查询,所以我只想要move、name、lastname和email
$sql = "INSERT INTO newsletter_subscribers2 VALUES (firstname, lastname, email) SELECT newsletter_subscribers.firstname, newsletter_subscribers.lastname, newsletter_subscribers.email FROM newsletter_subscribers WHERE id='".$_GET['nid']."'";
然而,这部分代码似乎不工作,因为我得到了语法错误,谁能帮助我这一点,我将非常高兴
感谢回复删除这些值
$sql = "INSERT INTO newsletter_subscribers2 (firstname, lastname, email)
SELECT newsletter_subscribers.firstname, newsletter_subscribers.lastname,
newsletter_subscribers.email
FROM newsletter_subscribers WHERE id='".$_GET['nid']."'";
编辑:并始终使用mysql\u real\u escape\u字符串来防止SQL注入:
$sql = "... WHERE id='".mysql_real_escape_string($_GET['nid'])."'";
您必须删除
值
$sql = "INSERT INTO newsletter_subscribers2(firstname, lastname, email)
SELECT newsletter_subscribers.firstname, newsletter_subscribers.lastname,
newsletter_subscribers.email
FROM newsletter_subscribers WHERE id='".$_GET['nid']."'";
试试这个:
insert into newsletter_subscribers2 (col1, col2, col3, etc) select col1, col2, etc from newsletter_subscribers2 where 1 = 1
你确定你的
id
字段是一个字符串(当你用单引号引用它时)?为什么你必须使用不同的表?是什么使你为每个“组”存储的数据显著不同?同意@CBroe。如果这两个组在语义上具有相同的性质,那么它们可能应该在同一个表中。如果有任何额外的信息将一个字段与另一个字段区分开来,那么这就意味着只为这些字段添加一个额外的表。在本例中,听起来您可以使用第二个带有一些ID和名称的表来区分这两个组,所有记录都保存在一个表中。