是否可以使PDO忽略无效的参数号异常?

时间:2016-09-19 07:40:50

标签: php mysql pdo

我正在使用PDO执行带参数的查询,因为不重复自己并避免编写样板代码我正在使用一个关联数组,该数组具有绑定多个不同查询的值。

当我使用数组执行查询时,我得到“绑定变量的无效参数数量与令牌数量不匹配”错误,如果我没有为查询提供所有参数,这可能是非常合理的,但是非常当我提供更多它需要它时多余。它可以简单地忽略所有未使用的参数......

是否可以忽略\避免此异常,同时仍为PDO查询提供额外的未使用的参数?

2 个答案:

答案 0 :(得分:1)

  

是否可以使PDO忽略无效的参数号异常?

没有。

我相信一些早期的PHP版本在某些情况下确实允许这样做,但是对于最近的版本,我无法重现这种行为。

无论哪种方式,最好使代码显式化。

答案 1 :(得分:0)

我知道这有点老了,但是如果您灵活使用查询返回的列,则始终可以确保查询末尾都有一个NotNeeded列,而该列只是CONCAT()的所有参数您不需要一起在该查询中。感觉有点优雅和浪费,但实际上并不算太糟。

如果您要返回大量行,则可能需要使用MID(CONCAT(),0,0),这样实际上就不会在结果中返回太多多余的无用数据。

我只是为我正在研究的项目执行此操作,它的效果很好-比必须为每种查询类型自定义参数集要简单得多的解决方案。现在,我只是将所有6种查询类型准备到以该类型为键的数组中,并使用该类型来选择查询并传入所有参数,而无需考虑该查询的实际要求。

六个准备,一个执行。虽然这些方法也是有效的方法,但比6个预备和6个不同的执行(或6个预备,6个参数创建和一个执行)小很多。