【发布时间】:2011-01-17 14:46:56
【问题描述】:
我确定我目前正在做的事情不是最佳的,但我真的很想听听一些关于如何处理 Web 应用程序上的所有数据库查询(包括连接字符串)的意见。
目前,我有一个 classes 目录,其中每个类都有一个文件,我还有另一个名为 db 的目录,其中包括一个 conn.php,其中包含连接字符串和 db 上的其他文件目录类似于classes 目录,每个类一个,但用于处理mysql查询。
所以基本上我将每个类的所有 db 查询都放在一个文件中,每当我需要从类文件中查询某些内容时,我都会调用 db 文件上的函数
我将每个 db 文件包含在相应的 db 文件中,例如在 user.class.php 文件中您会找到 include('db/user.db.php')。
另外,我将conn.php 文件包含到每个数据库文件中。
user.class.php:
include('db/user.db.php');
class User {
public $fname;
public $userid;
function __construct($userid) {
$this->user_id = $userid;
$this->fname = DB_GetFirstName($userid);
}
}
user.db.php:
include('conn.php');
function DB_GetFirstName($userid) {
$result = mysql_fetch_array(mysql_query("SELECT USR_FName FROM users WHERE USR_ID = '$userid'"));
return $result[0];
}
conn.php:
$conn = mysql_connect("localhost", "user", "pass");
mysql_select_db("dbname", $conn);
你是怎么处理的?
【问题讨论】:
-
听起来不错。您正在将 Db Access 从您的域类中分离出来。那你怎么把它放在一起?你能从你的 User 和 UserDb 类中展示一些 sn-ps 吗?
-
添加了一些sn-ps,对我来说看起来不太优雅。我还被告知我应该为每个查询打开一个到数据库的连接,这是为什么呢?
标签: php mysql database database-design