PDOStatement的HY093错误原因及解决办法
PHP中使用PDO时,如果PDOStatement的实例返回HY093错误,通常都是参数绑定错误。
参数绑定错误通常有以下几种:
1. 参数个数不符,请检查PDOStatement::execute($array)中$array的元素个数与prepare方法中:param_name或?的个数是否相同,这种情况没有任何错误描述,只有错误代码HY093;
2. 参数名不匹配,请检查 PDOStatement::execute($array)中$array的键名与prepare方法中:param_name完全一致;
3. prepare方法使用了不正确的参数名,例如':param_name'或'?',添加了多余的引号。
如果 prepare 方法使用参数名:param_name,而不是?号的话,则execute方法的参数的数组元素的顺序可以任意排列。