【问题标题】:Insert Into with Select(PDO) and php使用 Select(PDO) 和 php 插入
【发布时间】:2014-09-22 10:58:21
【问题描述】:

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

$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 错误:“用户名”列中的空值违反非空约束详细信息:失败行包含 (6, null, 2014-09-22 13:06:33.262)。

我尝试了数据库中的查询,它可以工作,所以我猜 bindParam 中有一些错误,但我不明白它是什么......所以如果有人可以帮助我,我将不胜感激,谢谢

【问题讨论】:

  • 这里有错误:$query2 ->bindParam(':var',$var);使用 $bookid 而不是 $var

标签: php pdo


【解决方案1】:

改变

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

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

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

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

只需绑定参数并运行查询。

【讨论】:

  • 谢谢,抱歉,这是一个愚蠢的错误,问题仍然存在,现在只针对“用户名”...我将重新编辑代码
  • @Alex 我已经更新了我的答案,你现在可以查看。
猜你喜欢
  • 2013-02-25
  • 2014-05-06
  • 2012-08-30
  • 2013-05-09
  • 2017-07-06
  • 2013-08-20
  • 1970-01-01
  • 2013-05-19
  • 2015-04-29
相关资源
最近更新 更多