Php, pdo mysql不能插入与内连接


php, pdo mysql can't insert with inner join

所以我对以下内容有点困惑。我有两个表,项目和变化。

项目:

- id
- title
- description
- datecreated

改变:

- id
- title
- description
- projectid FOREIGN KEY
- datecreated

i can't figure out of how to

insert into change (name, description, projectid) value (:name, :description, :projectid)
select id from project
where name = $name

important - insert中的名称和描述由PHP变量使用表单提供。

important -必须使用PDO

实际代码:

$sql = "INSERT INTO change (title, description, project_id) SELECT :title, :description, id FROM project WHERE title = :project_title";
$query = $db->prepare($sql);
$query->execute(array(":title" => $title, ":description" => $description, ":project_title" => $created));

这就是我最后所做的,但是Barmar在这个问题和另一个问题上得到了帮助。

   $sql = "INSERT INTO `change` (`title`, `description`, `project_id`) SELECT :title, :description, id FROM project WHERE title = :project_title";
$query = $db->prepare($sql);
$query->execute(array(":title" => $title, ":description" => $description, ":project_title" => $created));

当您插入时,您可以使用values子句或使用select来指定数据源。你不能两者都用

你想:

INSERT INTO `change` (`title`, `description`, `projectid`)
SELECT :title, :description, id
FROM project
WHERE title = :project_title