我在使用下面的PDO代码时出现问题,这会引发此错误:
未捕获的异常'PDOException',消息'SQLSTATE [HY093]:参数号无效'
我知道$ theID变量工作正常,抓取变量并将其存储,就像我在页面的其他地方使用它一样。问题出在我的PDO代码中......
//获取ID $ theID =(isset($ _GET ['ID']))? $ _GET ['ID']:false;
$sql ="SELECT count(*) from writing
LEFT JOIN stories on writing.SID = stories.SID
LEFT JOIN wp_users ON writing.ID = wp_users.ID
WHERE (wp_users.ID != :theID) AND (writing.approved = :approved) AND (stories.ID =
:theID)“;
$stmt = $dbh->prepare($sql);
$stmt->bindParam(':theID', $theID, PDO::PARAM_INT);
$stmt->bindParam(':approved', $m = Y, PDO::PARAM_STR);
$stmt->execute();
答案 0 :(得分:0)
我明白了。问题是我使用相同的命名参数:theID不止一次。我将其更改为:theID1和:theID2,并且每个都有两个单独的bindParam语句,并且它有效。