Php 是否可以使用PDO在insert中嵌入select语句

Php 是否可以使用PDO在insert中嵌入select语句,php,mysql,select,pdo,insert,Php,Mysql,Select,Pdo,Insert,我试图完成一个INSERT语句,我的一个字段要求我从数据库中提取数据,并在INSERT语句中使用它。比如说 $stmt = $dbh->prepare("INSERT INTO city(id, cityname, stateID) ". "VALUES ('NULL', :city, :stID)"); 此时,我将绑定value并执行。但是,我想使用select语句来查找stID的值 SELECT id FROM state WHERE st

我试图完成一个INSERT语句,我的一个字段要求我从数据库中提取数据,并在INSERT语句中使用它。比如说

$stmt = $dbh->prepare("INSERT INTO city(id, cityname, stateID) ".
                      "VALUES ('NULL', :city, :stID)");
此时,我将绑定value并执行。但是,我想使用select语句来查找stID的值

SELECT id FROM state WHERE statename=NY
我是否需要将查询保存在一个变量中,然后使用该变量执行INSERT语句,或者是否有方法使用PDO在INSERT语句中添加select语句


我觉得这个问题不是重复的,因为被引用为重复的问题没有讨论如何使用PDO完成这个任务。我不知道select语句可以直接放在VALUES参数中

只需将
选择
正确嵌套到位:

INSERT INTO city(id, cityname, stateID) 
VALUES ('NULL', :city, 
    (SELECT stID from state WHERE stname = :stname LIMIT 1))

然后绑定剩下的参数,即:city和:stname。我猜剩下的表名和字段名。

顺便说一句,这只是一种糟糕的形式。我可以想出一些理由,为什么你可能想首先找到州。最重要的是它可能(还)不存在于表中。因此,您可以获取、创建并插入您的城市。这作为单独的语句更具可读性。非常感谢@gamut我认为这会使我的代码在回顾时更容易理解。@Peeha编辑了一个问题,并根据要求进行了解释。
inbed
?这就是你如何拼写
embed
@meda lol是的,你不必通过五年级的代码考试。