是否可以使用PDO在插入内部嵌入select语句

时间:2014-09-18 17:04:27

标签: php mysql select pdo insert

我正在尝试完成一个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参数中。

1 个答案:

答案 0 :(得分:1)

SELECT直接嵌入到位:

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

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