【发布时间】:2010-09-21 07:04:03
【问题描述】:
我正在考虑在我未来的所有 web 应用中使用 PDO。目前(使用到目前为止我从 SO 中学到的知识),我在我的站点中处理数据库连接的是一个像这样的 Singleton 类:
class DB {
private static $instance = NULL;
private static $dsn = "mysql:host=localhost;dbname=mydatabase;";
private static $db_user = 'root';
private static $db_pass = '0O0ooIl1';
private function __construct()
{
}
private function __clone()
{
}
public static function getInstance() {
if (!self::$instance)
{
self::$instance = new PDO(self::$dsn, self::$db_user, self::$db_pass);
self::$instance-> setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
}
return self::$instance;
}
}
还有另一个文件(functions.php),其内容特定的函数看起来和这个完全一样:
function get_recent_activities ()
{
try
{
$db = DB::getInstance();
// --prepare and execute query here, fetch the result--
return $my_list_of_recent_activities;
}
catch (PDOException $e)
{
return "some fail-messages";
}
}
...
意味着我必须在所有函数中重复 try .. catch 部分。
我的问题是:
- 我应该如何提高效率? (例如,不必在所有函数中重复
try..catch,但仍然能够在每个函数上返回不同的“失败消息”) - 这已经是一个好习惯了吗?我还是 PDO 和 OOP 的新手(还有很多东西要学),所以(到目前为止),我真的看不出有任何缺点或可以改进的地方。
如果这看起来不清楚或太长,我很抱歉。提前致谢。
【问题讨论】: