面向对象的Php数据库访问问题

时间:2012-09-16 06:13:49

标签: php mysql

坦率地说,我是面向对象编程的新手。我更熟悉C等过程代码。

我开始设计一个以php为底层框架的网站。最初,我坚持使用程序式设计。这很快就变得非常麻烦。不用说,我想使用面向对象的方法。我看到很多机会这样做。

特别是在访问数据库方面 - 在这种情况下是MySQL。

现在,我正在决定如何设计数据库类。显然,它将通过PHP的PDO结合一个连接。但是我被困在除了那个以外的课程中。它可以清楚地包含其他方法,但程度如何?例如,我是否还应该包含MySQL查询,插入,删除等功能?这些是我需要定期调用的常用函数,所以我不应该将它们全部包含在同一个类中吗?否则,如果我需要创建四个或更多不同的类,那么使用类似乎几乎没有意义?

任何有更多经验的人,请帮忙!谢谢!

1 个答案:

答案 0 :(得分:1)

我喜欢编写自己的简单包装类的想法。如果将来某个时候你想要切换到另一个数据库库,那么你所要做的就是更改包装类中的代码。

在我工作的地方,我们为php mysql函数编写了一个包装类。我们有生产和测试服务器,主要的mysql服务器位于生产环境中,还有其他带复制的服务器。我们的包装器指出了连接数据的位置 - 有些情况下它只连接到replicant进行选择。我们可能要连接的每个数据库的凭据都在包装器中定义,这简化了使用。类方法是执行sql,获取一行或所有行并转储到数组,转义数据,返回最后一个id等。还有一种方法可以向每个SQL语句添加注释以及一些有用的信息(比如执行查询的文件)轻松调试。

将数据导入数组的示例:

$db = MysqlWrapper('db_name');
$data = $db->fetchAll($query);

以后在相同的代码中,我们可以使用相同的实例发出更新或插入。

$db->execute($query);