使用原生 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...
}
}