使用Select(PDO)和php插入Into


Insert Into with Select(PDO) and php

好的,所以我需要在表中插入一些值,但我需要在数据库中搜索其中一个数据,所以我试着像这样做

$bookid = $_GET['var'];
$username = $_GET['username'];
$quer2 = "Insert Into reserved (username,bookid) VALUES ((SELECT userid FROM users WHERE   username=:username),:var)";
$query2 = $dbc->prepare($quer2);
$query2  ->bindParam(':username',$username);
$query2  ->bindParam(':var',$bookid);
$query2 ->execute();

问题是我得到这个错误

SQLSTATE[23502]:非null冲突:7错误:"username"列中的null值违反非null约束详细信息:失败行包含(6,null,2014-09-22 13:06:33.262)。

我在数据库中尝试了查询,它有效,所以我想bindParam中有一些错误,但我不明白它是什么…所以如果有人能帮助我,我将不胜感激,谢谢

更改

$query2  ->bindParam(':var',$var);

$query2  ->bindParam(':var',$bookid);

将您的查询更新为类似于此的内容

Insert Into reserved (username,bookid)
SELECT userid, :var FROM users WHERE username=:username

只需绑定params并运行查询。