模型是专门用来和数据库打交道的 PHP 类。以下是使用 XunRuiCMS 的数据模型进行数据操作的解决教程:
创建模型类:
在 `dayrui/App/Test/Models/` 目录下创建 `My.php` 文件,并添加以下代码:
<?php namespace Phpcmf\Model;
class My extends \Phpcmf\Model
{
public function my_test()
{
return '模型类方法输出';
}
}
请注意文件和类名的命名格式:文件名首字母必须大写,类名首字母必须大写。
模型类调用方式:
\Phpcmf\Service::M('类文件名', 'APP目录名')->方法(参数)
例如:
\Phpcmf\Service::M('my', 'test')->my_test();
数据库对象调用方法:
$this->db; // 这个写法只能在模型文件中写
\Phpcmf\Service::M()->db; // 这个可以任意地方写
运行查询语句:
$rt = $this->db->query("你的查询语句");
模型类数据操纵用法:
一、组装方法:
用于构造数据操作的条件方法,全部组装方法都返回数据对象,支持链式写法。
1、设置数据表:
$this->table("member"); // 解析为 dr_member 表
2、设置当前站点的数据表:
$this->table_site("news", 1); // 解析为 dr_1_news 表
3、设置 where 条件:
$this->where("直接写条件");
$this->where("字段", "值");
4、设置 where_in 条件:
$this->where_in("字段", "数组值");
5、设置排序条件:
$this->order_by("字段", "值");
6、设置表自增主键,默认为 id:
$this->id("字段", "值");
二、查询方法:
1、查询 SQL 语句:
$rt = $this->query(SQL);
数据返回:
- `$rt['code']`:1 表示成功,0 表示失败
- `$rt['msg']`:失败原因
2、查询全部数据:
$this->组装方法->getAll($num, $key);
参数:
- `$num`:默认为全部表,本次查询的数据量
- `$key`:默认为 0,本次查询按哪个字段作为数值主键,主键由 0 开始;如果填写 id,那么主键就是 id
数据返回:多维数组类型
用法举例:
$this->table("member")->getAll(); // 获取全部会员数据
$this->table("member")->where("money>0")->getAll(); // 获取金额大于 0 的会员数据
3、按条件查询单个数据:
$this->组装方法->getRow();
数据返回:一维数组类型
用法举例:
$this->table("member")->where("username", "admin")->getRow(); // 获取账号是 admin 的会员数据
4、按主键查询单个数据:
$this->组装方法->get($id);
数据返回:一维数组类型
用法举例:
$this->table("member")->id('uid')->get(1); // 获取 uid=1 的会员数据
$this->table_site("news")->get(1); // 获取 id=1 的新闻主表内容
5、统计数据:
$this->组装方法->counts("表名称");
数据返回:数字
用法举例:
\Phpcmf\Service::M()->where("catid", 1)->counts("1_news"); // 查询栏目 id=1 的新闻数量
\Phpcmf\Service::M()->counts("1_news"); // 查询全部新闻数据量
三、插入方法:
$this->table("表名称")->id("主键字段")->insert(数据数组);
或者
$this->table("表名称")->id("主键字段")->replace(数据数组);
参数:
- 表名称:例如 member
- 主键字段:默认是 id,即表的自增字段
- 数据数组:数组格式,例如:`array("字段名称" => "值", ....)`
数据返回:
- `$rt['code']`:0 表示失败,大于 0 表示本条数据的主键值,自增值
- `$rt['msg']`:失败原因
用法举例:
$rt = $this->table("test")->id("id")->insert([
"title" => "标题字段",
"content" => "内容字段",
]);
if ($rt['code']) {
// 成功
} else {
// 失败
}
四、更新方法:
$this->table("表名称")->id("主键字段")->update($id, 数据数组);
参数:
- 表名称:例如 member
- 主键字段:默认是 id,即表的自增字段
- `$id`:主键字段的值
- 数据数组:数组格式,例如:`array("字段名称" => "值", ....)`
数据返回:
- `$rt['code']`:0 表示失败,大于 0 表示本条数据的主键值,自增值
- `$rt['msg']`:失败原因
用法举例:
$rt = $this->table("test")->id("id")->update(1, [
"title" => "标题字段",
"content" => "内容字段",
]);
if ($rt['code']) {
// 成功
} else {
// 失败
}
五、删除方法:
$this->table("表名称")->组装方法->id("主键字段")->delete($id);
参数:
- 表名称:例如 member
- 主键字段:可选,默认是 id,即表的自增字段
- `$id`:可选,主键字段的值
数据返回:
- `$rt['code']`:0 表示失败,大于 0 表示成功
- `$rt['msg']`:失败原因
用法举例:
$rt = $this->table("test")->id("id")->delete(1); // 删除 id=1 的记录
$rt = $this->table("test")->where("cid", 2)->delete(); // 删除 cid=2 的记录
以上就是使用 XunRuiCMS 数据模型进行数据操作的解决教程。