好的,所以我需要在表中插入一些值,但我需要搜索数据库中的一个数据,所以我试着这样做
$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]:非空违规:7错误:“username”列中的空值违反非空约束DETAIL:失败行包含(6,null,2014-09-22 13:06:33.262)。< / p>
我在数据库中尝试了查询并且它有效,所以我猜在bindParam中有一些错误但我无法理解它是什么...所以如果有人能帮助我,我会很感激,谢谢
答案 0 :(得分:2)
变化
$query2 ->bindParam(':var',$var);
到
$query2 ->bindParam(':var',$bookid);
将您的查询更新为此类
Insert Into reserved (username,bookid)
SELECT userid, :var FROM users WHERE username=:username
只需绑定params并运行查询。