【问题标题】:PDO Invalid parameter number: parameter was not defined [closed]PDO无效的参数号:参数未定义[关闭]
【发布时间】:2014-04-01 01:30:49
【问题描述】:

我在使用 PDO 进行选择时遇到了一个奇怪的问题,所以我来这里寻求您的帮助。 我在下面有这段代码,我得到了这个错误

    Warning: PDOStatement::execute(): SQLSTATE[HY093]: Invalid parameter number: 
parameter was not defined in  `$verifyUser->execute();`

有人知道为什么会发生这种情况?

我的 PHP 代码:

if(!$_SESSION['result'])
 {
    header('Location: index.php');
 }
else   
{
    $userId = $_SESSION['result']['id'];                
    $verifyUser = $pdo->prepare("SELECT * FROM aadmins where id = :userId");  
    $verifyUser->bindValue(":id", $userId);  
    $verifyUser->execute();
    $num_rows = $verifyUser->rowCount();
    $result = $verifyUser->fetch(PDO::FETCH_ASSOC);
}

【问题讨论】:

  • 您的占位符是:userId,但您正在绑定:id。而是在bindValue() 中绑定:userId

标签: php mysql sql pdo


【解决方案1】:

您在 SQL 查询中使用 :userId,而在 bindValue 中您使用的是 :id

$verifyUser = $pdo->prepare("SELECT * FROM aadmins where id = :userId");  
$verifyUser->bindValue(":id", $userId); 

但是查询和绑定值应该是一样的。

$verifyUser = $pdo->prepare("SELECT * FROM aadmins where id = :id");  
$verifyUser->bindValue(":id", $userId); 

【讨论】:

  • 谢谢...这是问题所在!我不知道我怎么没看到,我想我在这么多小时后得到了油炸的头,哈哈!谢谢:)
  • 一看就很明显
  • 太棒了,这对我来说非常适合,谢谢,直到现在都无法确定这一点。
猜你喜欢
  • 2016-03-13
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-04-15
  • 1970-01-01
  • 1970-01-01
  • 2016-12-15
  • 2022-01-10
相关资源
最近更新 更多