好的,所以我需要在表中插入一些值,但我需要在数据库中搜索其中一个数据,所以我试着像这样做
$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并运行查询。