<?php
namespace Home\Controller;
use Think\Controller;
use Think\Model;
class QueryController extends Controller{
// 快捷查詢 - 是一種多字段查詢的簡化寫法,
//多個字段之間用‘|’隔開表示OR
//用‘&’隔開表示AND
public function Query1(){
echo '<meta http-equiv="Content-type" content="text/html;charset=UTF-8"/>';
// 不同字段 的 相同查詢
$usr=M('User');
// $map['user|email']='櫻桃小丸子';
$map['user&email']='櫻桃小丸子';
echo "<pre>";
var_dump( $usr->where( $map)->select());
}
public function Query2(){
echo '<meta http-equiv="Content-type" content="text/html;charset=UTF-8"/>';
// 不同字段 的 不同查詢
$usr=M('User');
$map['id&user']= array(1,'柯南','_multi'=> TRUE);
// 設置'_multi'為true,是為了讓id對應1,讓user對應“柯南”,否則
//會出現id對應了1,還要對應“柯南”的情況,而且,這設置要放在數組最后
echo "<pre>";
var_dump( $usr->where( $map)->select());
}
public function Query3(){
echo '<meta http-equiv="Content-type" content="text/html;charset=UTF-8"/>';
// 結合表達式的 快捷查詢
$usr=M('User');
// $map['id&user']=array(1,'柯南','_multi'=>TRUE);
//設置'_multi'為true,是為了讓id對應1,讓user對應“柯南”,否則
//會出現id對應了1,還要對應“柯南”的情況,而且,這設置要放在數組最后
$map['id&user']= array( array('gt',1),'櫻桃小丸子','_multi'=> true);
echo "<pre>";
var_dump( $usr->where( $map)->select());
}
public function Query4(){
echo '<meta http-equiv="Content-type" content="text/html;charset=UTF-8"/>';
// 區間查詢
//比如 id>1 and id<3
//或者 id>1 or id<3
$user=M("User");
$map['id']= array( array('gt',1), array('lt',3)); // 注意沒有等於
echo "<pre>";
var_dump( $user->where( $map)->select());
$map['id']= array( array('lt',1), array('gt',3),'or');
echo "<pre>";
var_dump( $user->where( $map)->select());
}
// 組合查詢 - 基於索引數組查詢方式的擴展性查詢,
// 可以添加字符串查詢(_string)、復合查詢(_complex)、請求字符串查詢(_query)
//由於采用的是索引數組,重復的會被覆蓋
public function Query5(){
echo '<meta http-equiv="Content-type" content="text/html;charset=UTF-8"/>';
$user=M('User');
$map['id']= array('eq',1);
$map['_string']='user="柯南" AND email="kenan0210@sian.com"';
// $map['_logic']='OR';
echo "<pre>";
var_dump( $user->where( $map)->select());
}
public function Query6(){
echo '<meta http-equiv="Content-type" content="text/html;charset=UTF-8"/>';
$user=M('User');
$map['id']= array('gt',1);
// 請求字符串 查詢 - 這是URL方式,不需要加引號
$map['_query']='user=櫻桃小丸子&email=labixiaoxin001@google.com&_logic=OR';
// 推薦使用,因為字段名有``護起來
echo "<pre>";
var_dump( $user->where( $map)->select());
}
public function Query7(){
echo '<meta http-equiv="Content-type" content="text/html;charset=UTF-8"/>';
$user=M('User');
$where['user']= array('like','%小%');
$where['id']=1;
$where['_logic']='OR';
$map['_complex']= $where;
$map['id']=3;
$map['_logic']='OR';
echo "<pre>";
var_dump( $user->where( $map)->select());
}
// 統計 查詢
public function TjQuery(){
$user=M('User');
var_dump( $user-> count()); // 統計記錄總數
var_dump( $user-> count('email')); // 統計字段email總數,遇到null跳過
echo "<br />";
var_dump( $user-> max('id'));
var_dump( $user-> min('id'));
var_dump( $user->avg('id'));
var_dump( $user->sum('id'));
}
// 動態查詢
// 借助 PHP5 語言特性,ThinkPHP實現動態查詢
public function Query_getby(){
// getBy動態查詢 //注意找到多個時,只返回一個
$user=M('User');
var_dump( $user->getByEmail('kswyl_da@gmail.com'));
var_dump( $user->getByUser('旗木卡卡西'));
var_dump( $user->getByUser( array('LIKE','%小%')));
}
// getFieldBy查詢
public function Query_getfieldby(){
$user=M('User');
// var_dump($user->getFieldByUser('旗木卡卡西','id'));
var_dump( $user->getFieldByUser('旗木卡卡西', array('id','email')));
// 注意,即使想這樣想返回多個字段的結果,也會只返回一個(id的 值)
}
// SQL原生查詢
public function Query_read(){
// ThinkPHP支持原生SQL query讀取
$user=M('User');
echo "<pre>";
var_dump( $user->query('SELECT * FROM think_user'));
}
// execute寫入
public function Execute_write(){
$user=M('User');
var_dump( $user->execute('UPDATE think_user SET user="蠟筆大新" WHERE id=1'));
}
}
?>
namespace Home\Controller;
use Think\Controller;
use Think\Model;
class QueryController extends Controller{
// 快捷查詢 - 是一種多字段查詢的簡化寫法,
//多個字段之間用‘|’隔開表示OR
//用‘&’隔開表示AND
public function Query1(){
echo '<meta http-equiv="Content-type" content="text/html;charset=UTF-8"/>';
// 不同字段 的 相同查詢
$usr=M('User');
// $map['user|email']='櫻桃小丸子';
$map['user&email']='櫻桃小丸子';
echo "<pre>";
var_dump( $usr->where( $map)->select());
}
public function Query2(){
echo '<meta http-equiv="Content-type" content="text/html;charset=UTF-8"/>';
// 不同字段 的 不同查詢
$usr=M('User');
$map['id&user']= array(1,'柯南','_multi'=> TRUE);
// 設置'_multi'為true,是為了讓id對應1,讓user對應“柯南”,否則
//會出現id對應了1,還要對應“柯南”的情況,而且,這設置要放在數組最后
echo "<pre>";
var_dump( $usr->where( $map)->select());
}
public function Query3(){
echo '<meta http-equiv="Content-type" content="text/html;charset=UTF-8"/>';
// 結合表達式的 快捷查詢
$usr=M('User');
// $map['id&user']=array(1,'柯南','_multi'=>TRUE);
//設置'_multi'為true,是為了讓id對應1,讓user對應“柯南”,否則
//會出現id對應了1,還要對應“柯南”的情況,而且,這設置要放在數組最后
$map['id&user']= array( array('gt',1),'櫻桃小丸子','_multi'=> true);
echo "<pre>";
var_dump( $usr->where( $map)->select());
}
public function Query4(){
echo '<meta http-equiv="Content-type" content="text/html;charset=UTF-8"/>';
// 區間查詢
//比如 id>1 and id<3
//或者 id>1 or id<3
$user=M("User");
$map['id']= array( array('gt',1), array('lt',3)); // 注意沒有等於
echo "<pre>";
var_dump( $user->where( $map)->select());
$map['id']= array( array('lt',1), array('gt',3),'or');
echo "<pre>";
var_dump( $user->where( $map)->select());
}
// 組合查詢 - 基於索引數組查詢方式的擴展性查詢,
// 可以添加字符串查詢(_string)、復合查詢(_complex)、請求字符串查詢(_query)
//由於采用的是索引數組,重復的會被覆蓋
public function Query5(){
echo '<meta http-equiv="Content-type" content="text/html;charset=UTF-8"/>';
$user=M('User');
$map['id']= array('eq',1);
$map['_string']='user="柯南" AND email="kenan0210@sian.com"';
// $map['_logic']='OR';
echo "<pre>";
var_dump( $user->where( $map)->select());
}
public function Query6(){
echo '<meta http-equiv="Content-type" content="text/html;charset=UTF-8"/>';
$user=M('User');
$map['id']= array('gt',1);
// 請求字符串 查詢 - 這是URL方式,不需要加引號
$map['_query']='user=櫻桃小丸子&email=labixiaoxin001@google.com&_logic=OR';
// 推薦使用,因為字段名有``護起來
echo "<pre>";
var_dump( $user->where( $map)->select());
}
public function Query7(){
echo '<meta http-equiv="Content-type" content="text/html;charset=UTF-8"/>';
$user=M('User');
$where['user']= array('like','%小%');
$where['id']=1;
$where['_logic']='OR';
$map['_complex']= $where;
$map['id']=3;
$map['_logic']='OR';
echo "<pre>";
var_dump( $user->where( $map)->select());
}
// 統計 查詢
public function TjQuery(){
$user=M('User');
var_dump( $user-> count()); // 統計記錄總數
var_dump( $user-> count('email')); // 統計字段email總數,遇到null跳過
echo "<br />";
var_dump( $user-> max('id'));
var_dump( $user-> min('id'));
var_dump( $user->avg('id'));
var_dump( $user->sum('id'));
}
// 動態查詢
// 借助 PHP5 語言特性,ThinkPHP實現動態查詢
public function Query_getby(){
// getBy動態查詢 //注意找到多個時,只返回一個
$user=M('User');
var_dump( $user->getByEmail('kswyl_da@gmail.com'));
var_dump( $user->getByUser('旗木卡卡西'));
var_dump( $user->getByUser( array('LIKE','%小%')));
}
// getFieldBy查詢
public function Query_getfieldby(){
$user=M('User');
// var_dump($user->getFieldByUser('旗木卡卡西','id'));
var_dump( $user->getFieldByUser('旗木卡卡西', array('id','email')));
// 注意,即使想這樣想返回多個字段的結果,也會只返回一個(id的 值)
}
// SQL原生查詢
public function Query_read(){
// ThinkPHP支持原生SQL query讀取
$user=M('User');
echo "<pre>";
var_dump( $user->query('SELECT * FROM think_user'));
}
// execute寫入
public function Execute_write(){
$user=M('User');
var_dump( $user->execute('UPDATE think_user SET user="蠟筆大新" WHERE id=1'));
}
}
?>