我正在尝试优化我的数据库访问类,以便在处理表单数据时提供帮助。我想要完成的是:
required
属性添加到给定的表单输入标记(并且,可选地,插入给定或相应的RegEx以进行高级匹配)。然后,继续(在我的实际代码中)的方式是这样的:
if (!empty($data = \Helpers\Forms\getData($_POST))) {
if (!empty($rules = \Helpers\Forms\getRules($_POST))) {
if ($data->isCompliant($rules)) {
// rest continues here...
}
}
}
到目前为止,我已经完成了步骤1,3和5。我得到了部分实现的第2步和第4步,因为我需要一种方法对给定的准备好的SQL查询进行元数据扫描,这就是我有点迷失的地方。
根据PDO手册,columnCount()
方法在调用execute()
方法之前无法提供准确的结果。
然而,execute方法实际上执行了查询,我不想这样做,因为如果它是一个SELECT查询,它实际上是可以的,但不适用于INSERT,DELETE,UPDATE或任何其他类型的查询。 / p>
所以我的问题是......有没有办法在不执行的情况下获取给定SQL查询的列数?或者......有没有办法执行给定SQL查询的虚拟执行以获取此列计数值?