使用原生 SQL 语句


MiniFramework 支持使用原生 SQL 语句操作数据库。

在开启了数据库自动连接状态下,即常量 DB_AUTO_CONNECT 的值为 TRUE 时,可以用 $this->loadDb() 方法获取到数据库实例,然后可以调用数据库实例的 query()execSql() 方法来执行原生 SQL 语句,示例代码如下:

namespace App\Model;

use Mini\Base\Model;

class User extends Model
{
    public function getUser()
    {
        // 获取 db1 的数据库实例
        $db = $this->loadDb('db1');

        // 使用原生 SQL 语句进行查询
        $list = $db->query('SELECT * FROM user');

        // 使用原生 SQL 语句进行更新
        $result = $db->execSql('UPDATE user SET age=19 WHERE id=1');

        // do something...
    }
}

在未开启数据库自动连接时,也可以手动获取到数据库实例,示例代码如下:

namespace App\Model;

use Mini\Base\Config;
use Mini\Base\Model;

class User extends Model
{
    public function getUser()
    {
        // 读取数据库配置信息
        $dbParams = Config::getInstance()->load('database');

        // 通过工厂方式实例化 Mysql 类
        $db = Db::factory('Mysql', $dbParams);

        // 查询
        $list = $db->query('SELECT * FROM user');

        // do something...
    }
}