如何在MySQL INSERT查询中将PHP变量与SELECT数据混合?

时间:2015-08-26 20:15:41

标签: php mysql select join insert

我有一个包含table1 (id, name_id, value)table2 (id, name, other)

的数据库

然后我有一些数据

$name = 'a name';
$value = 'a value';

我想将$name值用作table2.name来获取table2.id并将其作为table1插入table1.name_id但我还要插入{ {1}} $value

在执行table1时我可以使用SELECT,但我JOIN找到的唯一问题是使用INSERT查询而不是{{} 1}}

但是,我想使用SELECTVALUES)中的值以及插入table2,但id方法似乎只复制一个表中的数据( $value)到另一个

编辑:伪SQL

SELECT

2 个答案:

答案 0 :(得分:2)

这样的事情应该有效(假设PDO,因为你没有指定):

$preparedStmt = $pdo->prepare("INSERT INTO table1 (name_id,value)
    SELECT id, :value FROM table2 WHERE name=:name");
$preparedStmt->execute(array('name'=>$name,'value'=>$value));

答案 1 :(得分:1)

insert into table1 (name_id, other)
select id, 'just some static data or data from a variable'
from table2
where name = '$name'

我插入了变量以提高可读性。但我建议改用 Prepared Statements