插入具有选择(PDO)和PHP

问题描述:

好了,所以我需要一些值插入表中,但我需要搜索的数据库中的数据之一,所以我试图做这样的插入具有选择(PDO)和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]: Not null violation: 7 ERROR: null value in column "username" violates not-null constraint DETAIL: Failing row contains (6, null, 2014-09-22 13:06:33.262).

我试图在数据库中查询和它的作品,所以我想有在bindParam一些错误,但我不明白它是什么......所以,如果任何人都可以帮助我,我将不胜感激,谢谢

+1

有一个错误的位置:$ QUERY2 - > bindParam( ':无功',$ VAR);使用$ BOOKID而不是$ VAR – Pundit 2014-09-22 11:03:37

变化

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

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

更新您的查询像这样

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

只是绑定PARAMS和运行查询。

+0

THX和遗憾,但是这是一个愚蠢的错误和问题仍然ONY它是“用户名”现在......我会重新编辑的代码 – Alex 2014-09-22 11:09:36

+0

@Alex我已经更新我的答案,你现在可以检查它。 – 2014-09-22 11:18:05

+0

谢谢你的作品 – Alex 2014-09-22 11:45:57