mysql 2031_PDO错误:SQLSTATE [HY000]:一般错误:2031

我收到了这个令人讨厌的错误,尽管我知道为什么要得到它,但我终生无法找到解决方案。

if ($limit) {

$sth->bindValue(':page', $page - 1, PDO::PARAM_INT);

$sth->bindValue(':entries_per_page', $page * $entries_per_page, PDO::PARAM_INT);

}

$sth->execute($criteria);

查询包含占位符(:placeholder)。但是要添加这些LIMIT占位符,我需要使用手动方法(bindValue),因为否则引擎会将它们转换为字符串。

我没有收到无效的参数数量错误,因此所有占位符均已正确绑定(我认为)。

查询:

SELECT `articles`.*, `regional_municipalities`.`name` AS `regional_municipality_name`,

`_atc_codes`.`code` AS `atc_code`, `_atc_codes`.`name` AS `substance`

FROM `articles`

LEFT JOIN `_atc_codes`

ON (`_atc_codes`.`id` = `articles`.`atc_code`)

JOIN `regional_municipalities`

ON (`regional_municipalities`.`id` = `articles`.`regional_municipality`)

WHERE TRUE AND `articles`.`strength` = :strength

GROUP BY `articles`.`id`

ORDER BY `articles`.`id`

LIMIT :page, :entries_per_page

除最后两个LIMIT(我与之手动绑定)外,所有占位符值均位于$ criteria中bindValue()。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值