【发布时间】:2014-05-18 21:45:43
【问题描述】:
我才刚刚开始用 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?
【问题讨论】:
-
('id','user_id','collection_id') -
如果你返回超过 1 行,你不能像这样选择 where,使用 where in。
-
"但我被困在下面的 INSERT INTO... SELECT 查询上" --- 实际上完全一样:用占位符替换所有变量
-
@RPM: "如果你返回超过 1 行,你就不能在哪里做这样的选择" --- 你为什么这么认为?
-
@zerkms,没关系,我以为他在使用子查询来查询 where。