SQLSTATE[HY093]: 参数编号无效 - 无法找到重复项

SQLSTATE[HY093]: Invalid parameter number - Can't find the duplicate

当我尝试 运行 在 SQL (PHP/PDO) 中提取函数的一部分时,出现以下错误:

向数据库提交查询时出错:SQLSTATE[HY093]:参数编号无效::membernobooking2

函数传递这些变量:

function makeBooking($memberNo2,$car,$bayID,$bookingDate,$bookingHour,$duration) {}

而代码的具体部分是:

$stmt4 = $db->prepare("INSERT INTO booking (bookingid, bayid, bookingdate, bookinghour, duration, memberno, car) 
                VAlUES (DEFAULT, :bayIDBooking, :bookingDateBooking, :bookingHourBooking, :durationBooking, 
                    (SELECT memberNo FROM PeerPark.Member m WHERE (m.email = ':membernobooking') OR (m.nickname = ':membernobooking')), :carBooking) 
                RETURNING bookingid  ");
                    $stmt4->bindValue(':bayIDBooking',$bayID,PDO::PARAM_INT);
                    $stmt4->bindValue(':bookingDateBooking',$bookingDate,PDO::PARAM_STR);
                    $stmt4->bindValue(':bookingHourBooking',$bookingHour,PDO::PARAM_INT);
                    $stmt4->bindValue(':durationBooking',$duration,PDO::PARAM_INT);
                    $stmt4->bindValue(':membernobooking',$memberNo2,PDO::PARAM_STR):
                    $stmt4->bindValue(':carBooking',$car,PDO::PARAM_STR);
                    $stmt4->execute();

我看到有人问了一个非常相似的问题,但我不认为我得到了任何重复的问题。任何人都可以解释一下吗?

删除值中绑定周围的引号 '

(m.email = ':membernobooking') OR (m.nickname = ':membernobooking')
           ^                ^                   ^                ^

(m.email = :membernobooking) OR (m.nickname = :membernobooking)

占位符不应包含引号。

参考文献: