October/WinterCMS执行原生SQL查询
在code
中使用DB对象来执行SQL查询语句
function onStart() { $this['results'] = Db::select('select * from tableName'); }
在Markup
中展现数据
{% for p in results %} <h1>{{ p.title }}</h1> {% endfor %}
数据库查询的处理
查询某个表的全部字段
$users = Db::table('users')->get();
其中get()
方法以数组格式返回当前表的全部记录,可以使用foreach
来处理数据
foreach ($users as $user) { echo $user->name; }
查询单行数据及部分字段
$user = Db::table('users')->where('name', 'John')->first(); echo $user->name;
如果你不需要返回当前记录的所有字段,你还可以这么写
$email = Db::table('users')->where('name', 'John')->value('email');
使用value()
会直接返回对应字段的值
返回多记录单字段
$titles = Db::table('roles')->lists('title'); foreach ($titles as $title) { echo $title; }
这句代码实现了查询roles
的所有记录的title
字段
同样,我们也可以在lists()
中定义我们要返回的字段名
$roles = Db::table('roles')->lists('title', 'name'); foreach ($roles as $name => $title) { echo $title; }
原生RAW SQL查询演示
原生SQL查询需要使用DB::select
方法
Db::select('select * from sometable where name = :name', ['name' => 'Charles']);
更多RAW SQL查询请参考这里。