namespace app\index\model;
use think\Db;
class Articles
{
/**
* 查询单个数据-find 方法查询结果不存在,返回 null,否则返回结果数组
*/
public function find(){
// table方法必须指定完整的数据表名,必须带着表前缀
$rs = Db::table('zht_articles')->where('articleId',100)->find();
// name方法自动调用配置文件的表前缀,如果你的数据表没有设置表前缀的话,那么name和table方法效果一致。
$rs2 = Db::name('articles')->where('articleId',1)->find();
// 助手函数db
$rs3 = db('articles')->where('articleId',1)->find();
// 助手函数db-使用不同的数据库连接db_config1
$rs4 = db('articles','db_config1')->where('articleId',100)->find();
// 字符串方式配置数据库连接,可能无法定义某些参数,例如前缀和连接参数。
$rs5 = db('zht_articles','db_config2')->where('articleId',101)->find();
// 跟$rs4等效,动态连接数据库的connect方法仅对当次查询有效。
$rs6 = Db::connect('db_config1')->table('zht_articles')->where('articleId',100)->find();
dump($rs6);
exit;
//echo Db::getlastsql(); //获得最后一条sql语句
return $rs;
}
/**
* 查询单个数据-如果没有查找到数据,则会抛出一个think\db\exception\DataNotFoundException异常
*/
public function findOrFail(){
$rs = Db::table('zht_articles')->where('articleId',100)->findOrFail();
return $rs;
}
/**
* 查询单个数据-当查询不存在的时候返回空数组而不是Null
*/
public function findOrEmpty(){
$rs = Db::table('zht_articles')->where('articleId',100)->findOrEmpty();
return $rs;
}
/**
* 查询多个数据-select 方法查询结果是一个二维数组,如果结果不存在,返回空数组
*/
public function select(){
$rs = Db::table('zht_articles')->where('dataFlag',1)->select();
$rs2 = Db::name('articles')->where('dataFlag',1)->select();
$rs3 = db('articles')->where('dataFlag',1)->select();
dump($rs3);
exit;
return $rs;
}
/**
* 查询多个数据-如果没有查找到数据,同样也会抛出一个think\db\exception\DataNotFoundException异常
*/
public function selectOrFail(){
$rs = Db::table('zht_articles')->where('dataFlag',-2)->selectOrFail();
return $rs;
}
/**
* 值和列查询-查询某个字段的值可以用
*/
public function value(){
// 查询某个字段的值可以用value,value 方法查询结果不存在,返回 null
// 返回某个字段的值
$rs = Db::table('zht_articles')->where('articleId',1)->value('articleTitle');
// 查询某一列的值可以用,column 方法查询结果不存在,返回空数组
// 返回数组
$rs2 = Db::table('zht_articles')->where('dataFlag',1)->column('articleTitle');
// 指定id字段的值作为索引
$rs3 = Db::table('zht_articles')->where('dataFlag',1)->column('articleTitle','articleId');
// 指定id字段的值作为索引 返回所有数据
$rs4 = Db::table('zht_articles')->where('dataFlag',1)->column('*','articleId');
dump($rs4);
exit;
return $rs;
}
/**
* 大批量数据处理
*/
public function cursor(){
// 如果你需要处理大量的数据,可以使用新版提供的游标查询功能,该查询方式利用了PHP的生成器特性,可以大幅减少大量数据查询的内存占用问题。-cursor方法返回的是一个生成器对象,user变量是数据表的一条数据(数组)。
$cursor = Db::table('zht_articles')->where('dataFlag', 1)->cursor();
foreach($cursor as $user){
echo $user['articleTitle']."
";
}
exit;
return $rs;
}
}