PDO语句中的参数号无效

时间:2014-09-02 02:19:06

标签: pdo

我在使用下面的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();

1 个答案:

答案 0 :(得分:0)

我明白了。问题是我使用相同的命名参数:theID不止一次。我将其更改为:theID1和:theID2,并且每个都有两个单独的bindParam语句,并且它有效。