08 09 2020

        如果应用需要使用数据库,则必须先到\config\Database.php数据库配置文件下进行数据库的配置,文件对应的参数说明可到基于PHP的diablo框架(二)配置篇中查看。

        配置了doablo框架的数据库连接信息后,我们就可以直接进行数据库操作了,diablo的数据连接使用mysqli扩展,同时diablo框架有sql构造器ORM提供(2020-07-13更新),接下来分别描述构造器和ORM的使用方法。

        1.SQL构造器

        首先解析SQL构造器的使用方法,使用构造器必须继承\diablo\lib\Model类或new一个\diablo\lib\Model类才可以使用构造器的功能,接下来我们可以直接使用构造器进行CURD操作了。以下是我编写的继承方法

public $model;

public function __construct()
{
$this->model = new model();

}

        上面我们已经设置了一个$this->model的方法了,我们可以使用这个方法进行操作

    1)查询:

        数据集:$this->model->find($sql,$key=null)

        $sqlsql语句,而$key则是映射的键名

        单条数据集:$this->model->get($sql,$key=null)

    (2)更新:$this->model->update($table,$arr,$whereArr)

        其中$table是表名,$arr$whereArr分别对应更新数据和条件数据的键值对数组

    (3)删除:$this->model->update($table,$arr)

        其中$table是表名,$arr表示条件数据的键值对数组

    (4)添加:$this->model->insert($table,$arr)

        其中$table是表名,$arr表示更新数据的键值对数组

        2.ORM2020-07-13更新)

        diablo支持ORM操作,要使用ORM必须继承或new一个\diablo\lib\OrmModel类,若使用过LaravelThinkPHP框架,使用本ORM基本无缝对接。以下是对ORMCURD的使用说明。

        首先定义一个例子:

<?php

namespace app\model;

use diablo\lib\ormModel;

class UserModel extends ormModel
{
//表名
protected function table()
{
// TODO: Implement table() method.
return "数据表名";
}

//主键
protected function primaryKey()
{
// TODO: Implement primaryKey() method.
return "主键字段";
} //实体

protected function entity()
{
// TODO: Implement entity() method.
return [

            '实体名'=>'表字段名',

        ];
}

}


        若读者创建一个Model类后 继承我们的ORM类后,IDE工具应该会有对应的提示,若没有则需要手动创建tableprimaryKey以及entity方法,分别表示数据表名、主键的字段和实体,若不需要实体则给entity输出空数组即可。创建成功后,可以往下看具体的操作

    (1)查询

        基本查询:UserModel::where($arr)->select($p)

        上面表示的是基本的条件查询其中$arr为一维数组,例如[‘id’,1表示的sql为 id=1 [‘id’,’!=’,1]则表示id!=1 。条件表达式支持mysql对应的表达式。$p表示指定字段 默认为*

        单条查询:UserModel::where($arr)->selectOne($p)

        单条查询的结果为一条数据

        分组查询:UserModel::where($arr)->groupBy($str)->select($p)

        groupBy表示的是sql中的 group by语句 $str表示字符串,可以指定需要分组的字段

        分页查询:UserModel::where($arr)->limit($page,$limit=null)->select($p)

        limit对应的sql语句是limi,可以根据业务去进行分页查询

    (2)更新

        更新则比较简单了 通过上述的查询结构我们仅需把select更换为update,例如:

        UserModel::where($arr)->update($arr)

        需要更新的数据以键值对的方式写进update方法中的$arr

    (3)删除

        删除操作:UserModel::where($arr)->delete()

    (4)添加

        添加操作:UserModel::insert($arr)

        到这diablo的数据库操作基本也结束了。


延伸阅读
  1. PHP读取大文件,并把文件数据存入mysql
  2. 基于PHP的Diablo框架(一)基础篇
  3. PHP中->和=>的秘密
发表评论