企业🤖AI智能体构建引擎,智能编排和调试,一键部署,支持私有化部署方案 广告
## 查询条件 在查询语句很复杂的情况下,DbModel提供的方法可能无法满足需要,此时,DbModel提供了两个方法执行原生的SQL语句。 ~~~ DbModel::exec($sql, $params = []) DbModel::query($sql, $params = []) ~~~ 其中,exec方法执行一个更新性的SQL语句,如:insert,update,delete等,并返回影响的行数。 query方法执行一个查询性的SQL语句,如:select, show等,并返回查询的结果集。 sql中可使用“?”占位符进行参数化查询 params数组中的元素和参数占位符一一对应 参数表: | 参数名称 | 必选 | 类型 | 说明 | | --- | --- | --- | --- | | sql | 是 | string | 执行的SQL语句 | | params | 否 | array | 参数化查询要绑定的数据 | 用例: ~~~ /** * 测试底层语句使用参数绑定直接插入数据 * * 本用例演示了如何使用较底层的方法来执行一条参数化绑定的、更新性的SQL语句 * 要绑定的参数在SQL语句中用?占位,通过$params数组传递值,$params数组中的元素和参数占位符一一对应 * * @return int 返回影响的行数 */ public function testExec() { $table = $this->table; $sql = "INSERT INTO `{$table}` SET `name` = ?, `age` = ?, `email` = ?, `create_at` = ?"; $params = ['杨文杰', 30, '88@qq.com', '2016-12-01 01:00:00']; return $this->exec($sql, $params); } /** * 测试底层语句参数绑定查询数据 * * 本用例演示了如何使用较底层的方法来执行一条参数化绑定的、查询性的SQL语句 * 要绑定的参数在SQL语句中用?占位,通过$params数组传递值,$params数组中的元素和参数占位符一一对应 * * @return array */ public function testQuery() { $table = $this->table; $sql = "SELECT * FROM `{$table}` WHERE `name` = ? AND `age` = ?"; $params = ['杨文杰', 30]; $heroes = $this->query($sql, $params); return $heroes; } ~~~