在PHP中创建DAO的正确方法

car*_*rlg 5 php mysql dao

从OOP的角度来看,在php中创建DAO(数据访问对象)的正确方法是什么?

例如(使用Account作为基本示例),我的AccountDAO将具有以下一些功能:

  • GetAllAccounts
  • GetAccountByID
  • UpdateAccount
  • DeleteAccount
  • InsertAccount

因此,一旦我获取数据库中的所有帐户,我应该将它们作为帐户对象数组返回给调用者吗?我应该只返回mysql结果集吗?

你知道DAO的任何好例子吗?

Har*_*dik -1

为此,您可以创建一个包含 3 个方法的类,第一个方法创建与数据库的连接,第二个方法关闭连接,第三个方法执行 SQL 查询

<?php
class Database{

    public function con_open(){
        $con = mysql_connect("domain","username","password");
            if (!$con)
            {
                die('Could not connect: ' . mysql_error());
            }
        mysql_select_db("db_name", $con);
    }

    public function query($sql){
        $result = mysql_query($sql);
            if(!$result){

            }else{      
                    return $result;
                }
    }

    public function fetch($result){
        $row = mysql_fetch_array($result);
        return $row;
    }

    public function con_close(){
         mysql_close($con);
    }
}


$db = new Database();

?>
Run Code Online (Sandbox Code Playgroud)

希望这对您有帮助

  • 您不仅不应使用“mysql_*”扩展,而且您的示例不允许在不显式更改代码的情况下更改连接详细信息。 (2认同)
  • 我认为OP正在寻找一个DAO(用于访问数据库中的一个特定表),而不是一个数据库类。 (2认同)