【发布时间】:2018-01-24 23:16:07
【问题描述】:
我使用 PHP 已经有几个星期了,我一直在问自己,是否可以用一个函数来处理所有数据库查询(SELECT、UPDATE、INSERT、DELETE)。
目前我有大约 30 倍的这些“try-catch”PDO 来与我的数据库进行通信:
//DB connection info already set...
try {
$exc = $this->dbh->prepare("SELECT uid FROM users WHERE email = :mail");
$exc->bindParam(':mail', $mail, PDO::PARAM_STR);
$exc->execute();
$exc->setFetchMode(PDO::FETCH_ASSOC);
while ($row = $exc->fetch()) {
// do something with $row['uid']
}
$this->dbh = null;
$exc = null;
} catch (PDOException $e) {
echo $e;
$this->dbh = null;
$exc = null;
}
有没有办法通过使用单个函数来缩小这段代码,我或服务器会从中获得任何利润吗?
谢谢你,路易斯
【问题讨论】:
-
不清楚...您能否提供至少两个这样的代码块,以便我们看看它们是否可以缩小?
-
听起来您正在考虑实现 PDO 包装器。这是一本好书~phpdelusions.net/pdo/pdo_wrapper
-
是的,您可以通过构建自己的 db 类包装器来简化,或者找到一个已经存在的。唯一的缺点是,使用简化对象会变得懒惰,而不是像上面介绍的那样冗长冗长;-)
-
您的问题是倒退的,因为它本质上是:“我在最佳实践方面或多或少正确地做事,我如何将此代码回归到完全不可取的东西?”说真的,如果你只是“几周”开始使用 PHP,那么你发布的代码比那些已经这样做了 年 的人领先了几英里。