INSERT INTO SELECT PDO查询

时间:2014-05-18 21:45:43

标签: php mysql pdo

我刚刚开始用PHP / MySQl编写,所以你从下面的代码中了解到为什么我要将它更新到PDO,各种各样的东西都没有继续这里。

我已经能够使用PDO执行基本的INSERT,即

$sql=
"INSERT INTO user_collections
('id','user_id','collection_id')
VALUES('',?,?)";

$insertsql=$db_connect->prepare($sql);
$insertsql->execute(array($newUserID,$collection_id));

但是我坚持下面的INSERT INTO ... SELECT查询。基本上,我从表格中获取信息并从表格中获取信息并尝试插入第二个表格。

$sql=
"INSERT INTO table1 (id,user_id,collection_id,sticker_id,status)
SELECT '', '$newUserID' ,'".$_POST['collection_id']."',t2.sticker_number,'N')."'
FROM table2 t2
WHERE t2.collection_id='".$_POST['collection_id']."'";
$insertsql=mysqli_query($db_connect ,$sql);

我知道上述内容适用于当前状态,但显然不是最好的设计。任何人都可以帮我翻译成PDO吗?

1 个答案:

答案 0 :(得分:2)

足够简单:

$sql = "
    INSERT INTO `table1` (`id`, `user_id`, `collection_id`, `sticker_id`, `status`)
    SELECT '', ?, ?, `t2`.`sticker_number`, 'N'
    FROM `table2` AS `t2`
    WHERE `t2`.`collection_id` = ?
";

现在只需准备好您的查询并传递$newUserID$_POST['collection_id']$_POST['collection_id']作为参数,您就完成了所有操作:)