【发布时间】:2018-01-17 10:27:00
【问题描述】:
我在代码库中有数百条这样的语句:
if ($stmt->execute(array(/* parameters */))) {
$att = $stmt->fetchAll(); /* or any other fetch method */
} else {
throw new DatabaseException(__METHOD__.": failed");
}
另一个不获取任何数据的变体:
if (!$stmt->execute(array(/* parameters */))) {
throw new DatabaseException("Error");
}
在这两种情况下,if ... 和 throw ... 都应该被删除,即第一个 sn-p 将被缩减为:
$stmt->execute(array(/* parameters */));
$att = $stmt->fetchAll(); /* or any other fetch method */
第二个:
$stmt->execute(array(/* parameters */));
注意:
-
如果没有,
array(/* parameters */)可能会丢失 存在的参数。 -
$stmt可能有另一个名字(如$foo)。
背景:我希望 PDO 在发生错误时抛出异常,而不是大量自定义代码。目前它被设置为静默忽略错误,这需要大量额外的检查......
注意:如果这对于 sed 或类似工具来说太复杂了,我将接受指向另一个工具的答案,该工具可以帮助避免手动重写所有这些语句。
【问题讨论】:
-
好的,你为自己做了哪些努力?
-
我搜索了类似的问题(和解决方案),但没有找到像我这样复杂的示例。另外,由于我不熟悉
sed和类似工具,我无法调整现有答案来解决我的问题,因为几乎所有答案都只包含解决方案而没有进一步解释。