mzphp DAO 数据层

第一步:配置 conf 文件中的 db。

第二步:创建 user 表:

CREATE TABLE `user` (
  `id` MEDIUMINT(8) UNSIGNED NOT NULL AUTO_INCREMENT COMMENT '',
  PRIMARY KEY (`uid`)
) DEFAULT CHARSET=utf8 COMMENT='user'

第三步,model 层有二种调用方法。

第一种,不定义 model,直接使用

<?php
!defined('FRAMEWORK_PATH') && exit('Accesss Deined');
class user_control extends base_control {
    public function on_index(){
        // SELECT * FROM user WHERE id =1
        $user = DB::T('user')->get(1);
        // ...
    }
}

此方法用于简单的 DAO 层调用。

第二种,在项目 model 或 core 目录中,新建一个 user.class.php 定义 user 继承自 base_model,

<?php
!defined('FRAMEWORK_PATH') && exit('Accesss Deined');
class user extends base_model {
    function __construct() {
        parent::__construct('user', 'id');
    }
}
?>

(小提示:为什么 DAO 建立在 model 和 core 目录都可以?区别:model 是动态加载, core 是预编译在 runtime.php 中,你可以根据 DAO 使用的频率来规划放在哪个目录)

在控制器中使用

<?php
!defined('FRAMEWORK_PATH') && exit('Accesss Deined');
class user_control extends base_control {
    public function on_index(){
        // SELECT * FROM user WHERE id =1
        $user = $this->user->get(1);
        // ...
    }
}

mzphp 中,控制器会自动加载并初始化对应的 model 层。

另外:

  • mzphp 也支持原生查询 SQL,使用以下方法:
// add table prefix

$table = DB::table('user');

// build SQL

$sql = sprintf("SELECT * FROM %s WHERE id=%d", $table, 1);

// get query and return first row

$first_row = DB::query($sql, 1);

// get query 

$query = DB::query($sql);

while($val = DB::fetch($query)){

    log::info($val);

}

// select method

// get first row from user where id =1

$user = DB::select('user', array('id'=>1), ' id ASC', 0);

// get all user array

$user_list = DB::select('user');

// get user count

$user_count = DB::select('user', 0, 0, -2);

results matching ""

    No results matching ""