<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                合規國際互聯網加速 OSASE為企業客戶提供高速穩定SD-WAN國際加速解決方案。 廣告
                # 第7章 TP5.0數據庫操作 ==================================================== ## 1、TP5.0 支持數據庫類型 Mysql、SqlServer、PgSQL、Sqlite等數據庫的支持。 ## 2、如何連接數據庫 ### 1、配置文件定義 a、配置文件目錄 C:\AppServ\www\tp5\application\database.php b、如何配置 return [ // 數據庫類型 'type' => 'mysql', // 服務器地址 'hostname' => '127.0.0.1', // 數據庫名 'database' => 'yzmedu', // 用戶名 'username' => 'root', // 密碼 'password' => '123456789', // 端口 'hostport' => '3306', ]; c、如何使用 // 實例化系統數據庫類 $DB=new Db; // 查詢數據 $data=$DB::table("user")->select(); // 使用sql語句 $data=$DB::query("select * from user"); ### 2、方法配置 1、使用數組 $Db=Db::connect([ // 數據庫類型 'type' => 'mysql', // 服務器地址 'hostname' => '127.0.0.1', // 數據庫名 'database' => 'yzmedu2', // 用戶名 'username' => 'root', // 密碼 'password' => '123456789', // 端口 'hostport' => '3306', ]); 2、使用字符串 $Db=Db::connect("mysql://root:123456789@127.0.0.1:3306/yzmedu#utf8"); // 數據庫類型://用戶名:密碼@數據庫地址:數據庫端口/數據庫名#字符集 3、如何使用 $data=$Db->table("user")->select(); ### 3、模型類定義 1、創建數據模型 a、命令行創建 1、切換到項目目錄 2、執行命令 php think make:model app\index\model\User b、手動創建 1、打開數據模型目錄 C:\AppServ\www\tp5\application\index\model 2、在目錄下新建 文件 User.php 3、在文件中書寫代碼 namespace app\index\model; use think\Model; class User extends Model { // } 2、如何設置 class User extends Model { // 使用數組配置鏈接數據庫 protected $connection=[ // 數據庫類型 'type' => 'mysql', // 服務器地址 'hostname' => '127.0.0.1', // 數據庫名 'database' => 'yzmedu', // 用戶名 'username' => 'root', // 密碼 'password' => '123456789', // 端口 'hostport' => '3306', ]; // 使用字符串配置鏈接數據庫 protected $connection="mysql://root:123456789@127.0.0.1:3306/yzmedu#utf8"; } 3、如何控制器中使用 $user=new \app\index\model\User(); // 查詢所有的數據 dump($user::all()); ## 3、查詢數據 1、tp方法 // 實例化系統數據庫類 $DB=new Db; // 查詢數據 $data=$DB::table("user")->select(); 2、使用sql語句 // 實例化系統數據庫類 $DB=new Db; // 使用sql語句 $data=$DB::query("select * from user"); ## 4、數據庫的基本使用 1、增加 # 返回值 影響行數 $data=Db::execute("insert into user value(null,'user1','123','18')"); $data=Db::execute("insert into user value(null,?,?,?)",['user2','456','20']); $data=Db::execute("insert into user value(null,:name,:pass,:age)",['name'=>"user3","pass"=>'678','age'=>25]); 2、修改 #返回值 影響行數 $data=Db::execute("update user set age='20' where id=9"); 3、刪除 #返回值 影響行數 $data=Db::execute("delete from user where id=10"); $data=Db::execute("delete from user where id>?",[15]); $data=Db::execute("delete from user where id>:id",["id"=>10]); 4、查看 $data=Db::query("select * from user"); $data=Db::query("select * from user where id >=? and id<=?",[5,8]); 5、獲取指定sql語句 Db::getLastSql(); 6、用戶模塊 1、命令行 找到項目目錄 新建控制器 php think make:controller app\index\controller\Users 2、寫資源路由 [詳見 代碼] ## 5、TP數據庫處理 ### 1、查詢操作 1、table方法查詢數據 // 查詢所有數據 // SELECT * FROM `user` $data=Db::table("user")->select(); // 查詢一條數據 // SELECT * FROM `user` LIMIT 1 $data=Db::table("user")->find(); 2、name方法查詢數據 // 與配置文件有關 // name 會自動添加配置文件中的表前綴 $data=Db::name("user")->select(); $data=Db::name("user")->find(); 3、助手函數 # SELECT * FROM `user` $data=db("user")->select(); # SELECT * FROM `user` LIMIT 1 $data=db("user")->find(); 4、where條件匹配 // SELECT * FROM `user` WHERE `id` > 25 $data=Db::table("user")->where("id",">",25)->select(); // SELECT * FROM `user` WHERE ( `id` > 25 AND `id` < 28 ) $data=Db::table("user")->where("id",">",25)->where("id","<",28)->select(); // SELECT * FROM `user` WHERE `name` LIKE '%user1%' $data=Db::table("user")->where("name","like","%user1%")->select(); // SELECT * FROM `user` WHERE `name` = 'user3' AND `pass` = 'qwe' $data=Db::table("user")->where("name","user3")->where("pass",'qwe')->select(); // SELECT * FROM `user` WHERE ( id > 25 and id <28 ) $data=Db::table("user")->where("id > 25 and id <28")->select(); // SELECT * FROM `user` WHERE `id` > 25 AND `name` = 'user10' $data=Db::table("user")->where(["id"=>[">",25],"name"=>'user10'])->select(); // SELECT * FROM `user` WHERE ( `id` > 25 AND `id` < 28 ) $data=Db::table("user")->where(["id"=>[">",25]])->where(['id'=>["<",28]])->select(); 5、whereOr 或者匹配 // SELECT * FROM `user` WHERE `id` <= 23 OR `id` >= 28 $data=Db::table("user")->where("id","<=",23)->whereOr("id",">=",28)->select(); // SELECT * FROM `user` WHERE `name` LIKE '%user1%' OR `name` LIKE '%user2%' $data=Db::table("user")->where("name","like","%user1%")->whereOr("name","like","%user2%")->select(); 6、limit 截取數據 // SELECT * FROM `user` LIMIT 5 $data=Db::table("user")->limit(5)->select(); // SELECT * FROM `user` LIMIT 5,5 $data=Db::table("user")->limit(5,5)->select(); 7、Order 排序 // SELECT * FROM `user` ORDER BY `id` $data=Db::table("user")->order("id")->select(); // SELECT * FROM `user` ORDER BY `id` desc $data=Db::table("user")->order("id","desc")->select(); 8、field 設置查詢字段 // 設置查詢字段 // SELECT `name`,`pass` FROM `user` $data=Db::table("user")->field("name,pass")->select(); $data=Db::table("user")->field(['name','pass'])->select(); // 起別名 // SELECT name uname,`pass` FROM `user` $data=Db::table("user")->field("name uname,pass")->select(); $data=Db::table("user")->field(['name'=>"uname",'pass'])->select(); // sql 的系統函數 // SELECT count(*) as tot FROM `user` $data=Db::table("user")->field("count(*) as tot")->select(); $data=Db::table("user")->field(['count(*)'=>"tot"])->select(); // 排除字段 // SELECT `id`,`age` FROM `user` $data=Db::table("user")->field("name,pass",true)->select(); $data=Db::table("user")->field(["name",'pass'],true)->select(); 9、Page 實現分頁效果 // SELECT * FROM `user` LIMIT 5,5 $data=Db::table("user")->page("1,5")->select(); 10、Group分組聚合 // SELECT `pass`,count(*) tot FROM `user` GROUP BY pass $data=Db::table("user")->field("pass,count(*) tot")->group("pass")->select(); 11、having 過濾 // 只能結合分組使用 // SELECT `pass`,count(*) tot FROM `user` GROUP BY pass HAVING tot >=2 $data=Db::table("user")->field("pass,count(*) tot")->having("tot >=2")->group("pass")->select(); 12、多表查詢 // select goods.*,type.name tname from type,goods where goods.cid=type.id $data=Db::query("select goods.*,type.name tname from type,goods where goods.cid=type.id"); // 內聯實現數據庫鏈接 // SELECT `goods`.*,type.name tname FROM `goods` INNER JOIN `type` `type` ON `goods`.`cid`=`type`.`id` $data=Db::table("goods")->field("goods.*,type.name tname")->join("type","goods.cid=type.id")->select(); // 右鏈接 // SELECT `goods`.*,type.name tname FROM `goods` RIGHT JOIN `type` `type` ON `goods`.`cid`=`type`.`id` $data=Db::table("goods")->field("goods.*,type.name tname")->join("type","goods.cid=type.id",'right')->select(); // 左鏈接 $data=Db::table("goods")->field("goods.*,type.name tname")->join("type","goods.cid=type.id",'left')->select(); 13、別名使用-給表起別名 // SELECT `g`.*,t.name tname FROM `goods` `g` LEFT JOIN `type` `t` ON `g`.`cid`=`t`.`id` $data=Db::table("goods")->alias("g")->field("g.*,t.name tname")->join("type t","g.cid=t.id",'left')->select(); 14、union集合 // SELECT `name` FROM `user` UNION select name from goods $data=Db::field("name")->table("user")->union("select name from goods")->select(); 15、參數綁定(bind) 為了防止sql注入 # DELETE FROM `user` WHERE `id` = 25 $id=input("id"); $data=Db::table("user")->where("id",":id")->bind(["id"=>[$id,\PDO::PARAM_INT]])->delete(); 16、數據統計 // SELECT MAX(age) AS tp_max FROM `user` LIMIT 1 $data=Db::table("user")->max("age"); // SELECT MIN(age) AS tp_min FROM `user` LIMIT 1 $data=Db::table("user")->min("age"); // SELECT AVG(age) AS tp_avg FROM `user` LIMIT 1 $data=Db::table("user")->avg("age"); // SELECT SUM(age) AS tp_sum FROM `user` LIMIT 1 $data=Db::table("user")->sum("age"); // SELECT COUNT(age) AS tp_count FROM `user` LIMIT 1 $data=Db::table("user")->count("age"); 17、視圖查詢 $data=Db::view("goods","id,name,price") ->view("type",'name tname',"type.id=goods.cid") ->select(); // SELECT `goods`.`id`,`goods`.`name`,`goods`.`price`,type.name tname FROM `goods` `goods` INNER JOIN `type` `type` ON `type`.`id`=`goods`.`cid` $data=Db::view("goods","id,name,price") ->view("type",'name tname',"type.id=goods.cid","left") ->select(); // SELECT `goods`.`id`,`goods`.`name`,`goods`.`price`,type.name tname FROM `goods` `goods` LEFT JOIN `type` `type` ON `type`.`id`=`goods`.`cid` ### 2、增加操作 1、插入單條數據 // 數組中的字段名 必須和數據庫中的字段名一致 $data=["name"=>"張三","pass"=>"123","age"=>18,]; $code=Db::table("user")->insert($data); $code=db("user")->insert($data); // INSERT INTO `user` (`name` , `pass` , `age`) VALUES ('張三' , '123' , 18) // 返回值 影響行數 2、插入多條數據 $data=[ ["name"=>"張三1","pass"=>"123","age"=>15,], ["name"=>"張三2","pass"=>"123","age"=>19,], ]; $code=Db::table("user")->insertAll($data); $code=db("user")->insertAll($data); // 返回值 影響行數 3、獲取最后一次插入ID $data=["name"=>"張三","pass"=>"123","age"=>18,]; $code=Db::table("user")->insertGetId($data); $code=db("user")->inserGetId($data); // 返回值最后插入的id ### 3、更新數據 1、修改數據 $code=Db::table("user")->where("id",">",'60')->update(["pass"=>"qwe","age"=>2]); // UPDATE `user` SET `pass`='qwe',`age`=2 WHERE `id` > 60 // 返回值 影響行數 $code=Db::table("user")->update(['age'=>52,"id"=>62]); // UPDATE `user` SET `age`=52 WHERE `id` = 62 $code=Db::table("user")->where("id",73)->setField("pass",'abc'); // UPDATE `user` SET `pass`='abc' WHERE `id` = 73 2、設置自增 $code=Db::table("user")->where("id",63)->setInc("age"); // UPDATE `user` SET `age`=age+1 WHERE `id` = 63 $code=db("user")->where("id",66)->setInc("age"); // UPDATE `user` SET `age`=age+1 WHERE `id` = 66 3、設置自減 // UPDATE `user` SET `age`=age-1 WHERE `id` = 62 $code=Db::table("user")->where("id",62)->setDec("age"); $code=Db::table("user")->where("id",62)->setDec("age",3); // UPDATE `user` SET `age`=age-3 WHERE `id` = 62 $code=db("user")->where("id",63)->setDec("age",3); // UPDATE `user` SET `age`=age-3 WHERE `id` = 63 ### 4、刪除數據 1、刪除一條數據 $code=Db::table("user")->where("id","71")->delete(); $code=Db::table("user")->delete(70); 2、刪除多條數據 $code=Db::table("user")->where("id in(51,54,55)")->delete(); $code=Db::table("user")->delete([62,63,66]); 3、刪除區間數據 $code=Db::table("user")->where("id>40 and id<45")->delete(); // DELETE FROM `user` WHERE ( id>40 and id<45 ) ## 6、事務機制 1、事務 張三 銀行卡 1000, 李四 銀行卡 500, 張三給李四轉賬200 1) 銀行 先扣除 張三的200 2) 銀行 將200 給了李四 2、mysql事務 mysql事務 要求 數據庫的引擎必須 InnoDB 3、使用 1、自動控制事務 Db::transaction(function(){ // 刪除一條數據 Db::table("user")->delete(40); // 刪除數據 Db::table("user")->deletes(); }); 2、手動控制事務 (***) // 開啟事務 Db::startTrans(); // 事務 try{ // 刪除數據id 31 $a=Db::table("user")->delete(31); // 判斷是否刪除成功 if (!$a) { throw new \Exception("刪除id 31 數據沒有成功"); } // 刪除不存在的數據 id 32 $b=Db::table("user")->delete(32); // 判斷是否刪除成功 if (!$b) { throw new \Exception("刪除id 32 數據沒有成功"); } // 執行提交操作 Db::commit(); }catch(\Exception $e){ // 回滾事務 Db::rollback(); // 獲取提示信息 dump($e->getMessage()); } // ================================================================== // 開啟事務 Db::startTrans(); // 刪除數據 33 $a=Db::table("user")->delete(33); // 刪除數據 34 $b=Db::table("user")->delete(34); // 判斷條件 if ($a && $b) { // 提交事務 Db::commit(); }else{ // 回滾事務 Db::rollback(); }
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看