操作数据库
MiniFramework 内建有一套 SQL 语句构造方法供开发者调用,对于常用的增/删/改/查操作进行了的封装,简化了 SQL 语句编码过程。
重要提示:MiniFramework 从 2.11.0 版本开始,将原 Mini\Base\Model 类中的数据库操作方法全部迁移至新增的 Mini\Db\Query 查询构造类中。同时,为了确保使用 MiniFramework 的各位开发者升级到 2.11.0 版本后项目运行正常,在 Mini\Base\Model 类中,继承了 Mini\Db\Query 类,原有的方法均可正常调用,不受影响。(新增的 Mini\Db\Query 类也可独立调用。)
查询数据
查询数据需要用到 $this->select()
方法,支持传入字符串类型的参数 all(默认) 和 row,分别代表返回结果集数组或单个结果,示例代码如下:
namespace App\Model;
use Mini\Base\Model;
class User extends Model
{
public function getUser()
{
// 使用 KEY 为 db1 的数据库实例
$this->useDb('db1');
// 查询 user 表的全部记录,返回结果集数组
$list1 = $this->table('user')->select();
// 查询 user 表中 id 为 1 和 3 的记录,返回结果集数组
$list2 = $this->table('user')->where('id', [1, 3])->select();
// 查询 user 表中 id=4 的记录,返回单行数据信息
$info1 = $this->table('user')->where('id=4')->select('row');
// do something...
}
}
添加数据
将需要添加的数据数组通过 $this->data()
方法传入,然后用 $this->add()
方法完成添加,示例代码如下:
namespace App\Model;
use Mini\Base\Model;
class User extends Model
{
public function addUser()
{
// 使用 KEY 为 db1 的数据库实例
$this->useDb('db1');
// 插入单条数据示例
$data1 = ['id' => 1, 'name' => '张三'];
$result1 = $this->table('user')->data($data1)->add();
// 插入多条数据示例
$data2 = [
['id' => 2, 'name' => '李四'],
['id' => 3, 'name' => '王五']
];
$result2 = $this->table('user')->data($data2)->add();
// do something...
}
}
更新数据
将需要更新的数据数组通过 $this->data()
方法传入,然后通过 $this->save()
方法完成更新,示例代码如下:
namespace App\Model;
use Mini\Base\Model;
class User extends Model
{
public function updateUser()
{
// 使用 KEY 为 db1 的数据库实例
$this->useDb('db1');
// 构造需要更新的数据
$data1 = ['name' => '张三'];
// 更新 id 为 1 的记录
$result1 = $this->table('user')->data($data1)->where('id=1')->save();
// 构造需要更新的数据
$data2 = ['class' => '六年级三班'];
// 更新全部记录(不指定 where 条件)
$result1 = $this->table('user')->data($data2)->save();
// do something...
}
}
删除数据
删除数据会用到 $this->delete() 方法,当不指定 where 条件时,会删除表内全部数据,请谨慎使用。示例代码如下:
namespace App\Model;
use Mini\Base\Model;
class User extends Model
{
public function delUser()
{
// 使用 KEY 为 db1 的数据库实例
$this->useDb('db1');
// 删除 id 为 1 的记录
$result1 = $this->table('user')->where('id=1')->delete();
// 删除全部记录(不指定 where 条件),请谨慎使用。
$result2 = $this->table('user')->delete();
// do something...
}
}