tp數據庫操作


1、常見的數據庫操作
//插入記錄
// $insert=Db::execute("insert into tp_user (username,password) values ('dome','pass2')");
////用?號代表參數占位符 []里的就是參數
// $insert=Db::execute("insert into tp_user (username,password) values (?,?)",['domeUser','domepass']);
//:username,:password占位符,后面[]號內的表是參數key、val和數據庫字段一一對應
//$insert=Db::execute("insert into tp_user (username,password) values (:username,:password)",['username'=>'admin','password'=>'sjdn2345']);
 //插入構造器
// $insert =Db::table('tp_user')->insert(['username'=>'admin3','password'=>'pass3']);
 ////插入構造器,此方法不用加前綴tp_
// $insert =Db::name('user')->insert(['username'=>'admin4','password'=>'pass4']);
---------
//更新記錄
//$updata=Db::execute("update tp_user set username='admin2' where id=1");
 //更新構造器
// $updata=Db::table('tp_user')->where('id',2)->update(['username'=>'222','password'=>'333']);
---------

//查詢記錄
//$select=Db::query("select * from tp_user order by id desc limit 10");
// $select=Db::query("select * from tp_user where id=?",[1]);
//查詢構造器
//$select=Db::table('tp_user')->where('id',2)->select();
//$data=Db::name('user')->field('username,password')->where('id',1)->order('id','desc')->limit(10)->select();
//查詢單條記錄
// $select=Db::name('user')->where("id",3)->find();
//查詢條件查詢 可以用 '>= ',4 '<= ',4 '<>',4 'in',[4,5,6,7] 'between',[5,10] 'not in',[1,5,8] 'exp'," in(1,2,3,4)" 'exp'," like '%1%'" 'exp',"=3"
//$select=Db::name('user')->where("id",'in',[3,4,5])->select();
//查詢滿足條件id=3 and username like '%admin3%'
//$select=Db::name('user')->where("id",'exp'," like '%3%' or username='admin4'" )->select();
//查詢滿足條件id=4 and username like '%admin4%'
//$select=Db::name('user')->where(['id'=>['=',4],'username'=>['like','%admin4%'],])->select();
//快捷查詢id>0 or username>0
//$select=Db::name('user')->where('id|username','>',0)->select();
//視圖的創建方法
//create view user as select a.name,a.age,b.sex from usera as a, userb as b where a.name=b.name;
//另一種query對象查詢方法
/*
$query=new \think\db\Query;
$query->name('user')->where('id',3);
$result=Db::select($query);
*/
 //查詢單條語句的某個值
//$name=Db::name('user')->where('id',3)->value('username');
//查詢某列字段返回是數組,的username為value值 id為下標key
//$name=Db::name('user')->where('status',1)->column('username','id');
//查詢數據集,ID為字段對應的所有數據集
// $name=Db::name('user')->where('status',1)->column('*','id');
//聚合查詢 count() max('id') min('id') avg() sum()
//$count=Db::name('user')->where("status",1)->count();
//簡單查詢
// $select=Db::name('user')->where("id > 3 and id<5")->select();
//簡單查詢用占位符防止注入 建議這么寫法
// $select=Db::name('user')->where("id > :id and username like :username",['id'=>3,'username'=>'dome'])->select();
//查詢時間2016-01-01自動轉換成時間戳
// $result=Db::name('user')->whereTime('addTime','>','2016-01-01')->select();
// $result=Db::name('user')->whereTime('addTime','between',['2016-01-01','2017-01-01'])->select();
//查詢今天數據 今天today 昨天yesterday 本周week 上周last week
// $result=Db::name('user')->whereTime('addTime','today')->select();
//分塊查詢
/*
Db::name('user')->where('id>0')->chunk(2,function($list){
foreach ($list as $data)
{
print_r($data);
}
});
*/

-----------
//清空表數據
//$clear= Db::execute("TRUNCATE table tp_user");

//刪除構造器
//$delete=Db::table('tp_user')->where('id',2)->delete();
----------
//自動事務處理
/*
Db::transaction(function(){
Db::name('user')->where("id",1)->delete();//刪除
Db::name('user_group')->insert(['uid'=>121,'groupName'=>'刪除']);//插入
});
*/
//手動事務處理
/*
Db::startTrans();
try{
Db::name('user')->where("id",1)->delete();//刪除
Db::name('user_group')->insert(['uid'=>131,'groupName'=>'刪除']);//插入
Db::commit();
}catch (\Exception $e){
Db::rollback();
}
*/

----------


//跨數據庫查詢 tp2是第二個數據庫 注意此方法需要在Config.php配置數據庫連接參數與database.php一樣
// $db2=Db::connect('tp2')->query("insert into tp_bank (uid,bankName,number) values (3,'dome','pass2')");
//$db2=Db::connect('tp2')->query("select * from tp_bank ");
config.php配置內容如下:
//連接數據庫
'tp2'=>[
// 數據庫類型
'type' => 'mysql',
// 服務器地址
'hostname' => '127.0.0.1',
// 數據庫名
'database' => 'tp2',
// 用戶名
'username' => 'root',
// 密碼
'password' => 'root',
// 端口
'hostport' => '',
// 連接dsn
'dsn' => '',
// 數據庫連接參數
'params' => [],
// 數據庫編碼默認采用utf8
'charset' => 'utf8',
// 數據庫表前綴
'prefix' => 'tp_',
// 數據庫調試模式
'debug' => true,
// 數據庫部署方式:0 集中式(單一服務器),1 分布式(主從服務器)
'deploy' => 0,
// 數據庫讀寫是否分離 主從式有效
'rw_separate' => false,
// 讀寫分離后 主服務器數量
'master_num' => 1,
// 指定從服務器序號
'slave_no' => '',
// 是否嚴格檢查字段是否存在
'fields_strict' => true,
// 數據集返回類型
'resultset_type' => 'array',
// 自動寫入時間戳字段
'auto_timestamp' => false,
// 時間字段取出后的默認時間格式
'datetime_format' => 'Y-m-d H:i:s',
// 是否需要進行SQL性能分析
'sql_explain' => false,
]

2、


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM