我正在尝试使用已发布的变量和另一个表中的内容将项插入表中。我不太清楚我哪里出了问题,因为table上没有任何东西。我非常困惑。这是我的密码:
$stmt = $conn->prepare("INSERT INTO Student_Choices (Username,T1_Choice,T2_Choice,T3_Choice,Current_DB)
VALUES (:username,:t1choice,:t2choice,:t3choice, db.DB)
SELECT DB FROM Current_DB as db
");
$stmt->bindParam(':username', $_SESSION['username']);
$stmt->bindParam(':t1choice', $_POST["term1sport"]);
$stmt->bindParam(':t2choice', $_POST["term2sport"]);
$stmt->bindParam(':t3choice', $_POST["term3sport"]);
$stmt->execute();
2条答案
按热度按时间im9ewurl1#
要设计此插入查询,请首先使用select创建要插入的结果集。
然后将该结果集用作insert的数据源。
注意select操作如何替换values()子句。
(请小心,除非在select上放置适当的where子句,否则可能会插入许多行,在当前的\u db中每行插入一行。)
gpfsuwkq2#
这个
SELECT DB FROM Current_DB as db
在内部无效INSERT
判决。只需先执行这个查询,然后获取DB
将值转换为变量,最后与一起使用bindParam()
与其他参数一样:类似于: