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)
占位符不应包含引号。
参考文献:
当我尝试 运行 在 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)
占位符不应包含引号。
参考文献: