<?php
namespace app\index\controller;
use think\Controller;
use think\Db;
use think\Env;
use think\View;
class Index extends Controller
{
public function index()
{
# 1.使用sql语句的方式查询数据库
//$res = Db::query("select * from imooc_user where id=?", [1]);
# 2.使用sql添加数据
/*
$res = Db::execute("insert into imooc_user set username=?,password=?,email=?", [
'imooc',
md5('imooc'),
'[email protected]'
]);
*/
# 3.使用 Db::table 查询, select 返回所有记录,返回的结果是一个二维数组
# 如果结果不存在, 返回一个空数组
//$res = Db::table('imooc_user')->select();
# 4. find方法, 返回一条记录, 返回的结果是一个一维数组
# 如果结果不存在, 返回一个空数组
/*
$res = Db::table('imooc_user')->where([
'id' => 10
])->find();
*/
# 5. value方法, 返回一个字段的值
# 如果结果不存在, 返回null
/*
$res = Db::table('imooc_user')->where([
'id' => 10
])->value('username');
*/
# 6. column 方法, 返回的是一个一维数组,数组中的value值就是我们要获取的列的值
# 如果存在第二个参数, 就返回这个数组并且用第二个参数的值作为数组的key值
# 如果结果不存在,返回空数组
//$res = Db::table('imooc_user')->column('username', 'email');
$res = db('user')->find();
dump($res);
}
}
select / column 返回多条记录 find / value 返回一条记录
Db::table() 需要填入完整的表名. 而且 Db::name() 则不需要填前缀.
db() 助手函数, 尽量少用, 因为每次都会实例化, 而 Db::table() / Db::name() 是单例模式, 不需要每次实例化. db() 如果也要用, 但是不想每次实例化, 可以给第三个参数, 给一个 false.