我正在尝试完成一个INSERT语句,我的一个字段要求我从数据库中提取数据并在我的INSERT语句中使用它。例如。
$stmt = $dbh->prepare("INSERT INTO city(id, cityname, stateID) ".
"VALUES ('NULL', :city, :stID)");
此时我将bindValue&执行并执行。但是我想使用select语句来查找stID的值。
SELECT id FROM state WHERE statename=NY
我是否需要将查询保存在变量中,然后使用变量执行INSERT语句,或者是否有办法使用PDO在insert语句中添加select语句?
我觉得这个问题并不重复,因为引用为重复的问题没有讨论如何使用PDO完成此任务。我不知道select语句可以直接放在VALUES参数中。
答案 0 :(得分:1)
将SELECT
直接嵌入到位:
INSERT INTO city(id, cityname, stateID)
VALUES ('NULL', :city,
(SELECT stID from state WHERE stname = :stname LIMIT 1))
然后绑定剩下的参数,即:city和:stname。我猜测剩下的表和字段名称。