8.3. dbEngine使用

dbEngine 是 PDO 对象,是数据库查询最底层的部分,一般情况下你极少用到这个东西。但是某些时候,你需要写一些特殊的 SQL,你打算直接执行 SQL 语句,而不是用前面提到的 Service,Modal,那么 dbEngine 是你最后的选择。

下面例子演示了如何直接执行 SQL 查询操作:

直接运行SQL查询. 

// 注意这里引入 DbEngine
use Core\Modal\DbEngine;
use Core\Modal\SqlMapper as DataMapper;


// 取得系统的 dbEngine
$dbEngine = DataMapper::getDbEngine();


// 直接执行 SQL
$sql = 'select * from '.DataMapper::tableName('users').' offset 10 limit 20 ;';
$dataArray = $dbEngine->exec($sql);


// 直接执行 SQL,注意这里参数的使用
$sql = 'select * from '.DataMapper::tableName('users').' where user_name = ? and age > ? and age < ? ;';
$dataArray = $dbEngine->exec($sql, array(1 => 'testuser', 18, 50));

上面的代码演示了如何直接执行 SQL 语句,包括如果 SQL 带参数的话应该如何执行。有这些例子,你应该就能做任何的数据库查询操作了。

[警告]

dbEngine 允许你直接执行 SQL 语句,但是千万注意不要 "简单拼接SQL" 语句,否则很容易出现 SQL 注入的 bug,严重威胁到整个系统的安全