thinkphp5 1 學習筆記 SQL 語句

2021-08-21 13:33:24 字數 3647 閱讀 3997

在專案開發中 列印 原生 sql 語句

在 框架中查詢構造器  結束後 返回的資料中,在 select()  查詢中的 括號中輸入 false  列印出 返回的值 即為 sql 語句

$data = $basequery->where($whereall)->whereor($whereor)->page($page, $limit)->order('contractlord.id desc')->select(false); 

echo $data; die;

列印出來的即為

select `contractlord`.* from `contract_lord` `contractlord` inner join `houses` `houses` on `contractlord`.`house_id`=`houses`.`id` left join `lease_note` `ln` on `ln`.`contract_id`=contractlord.id and ln.is_rent = 0 left join `customer_lord` on `contractlord`.`id`=`customer_lord`.`lord_id` where ( `customer_lord`.`customer_id` in ('1520','1538') ) and `contractlord`.`deleted_at` is null order by contractlord.id desc limit 0,5

或者使用

$res = db::name('circle_vote_option')->getlastsql();

echo $res;

注意事項:

1.先在database.php中配置好資料庫

2.只要是資料庫操作必須引用 use/think/db;嚴格區分大小寫。

下面是方法:

public function hello5()

{//所有查詢必須 use/think/db;

/* 1 配置資料庫

* 2 使用db 命名空間

* */

/****************tp5中使用原生語句*******************/

//query 用於查詢 其他的用execute

// 插入記錄

// $result = db::execute('insert into sb_ad (ad_name, ad_content ,status) values (1, "456",1)');

// dump($result);

// 更新記錄

// $result = db::execute('update sb_ad set ad_name = "framework" where ad_id = 1 ');

// dump($result);

// 查詢資料

// $result = db::query('select * from sb_ad where ad_id = 1');

// print_r($result);

// 刪除資料

// $result = db::execute('delete from sb_ad where ad_id = 2 ');

// dump($result);

//其它操作

// 顯示資料庫列表

// $result = db::query('show tables from tpshop1');

// print_r($result);

// 清空資料表

// $result = db::execute('truncate table sb_ad');

// dump($result);

/**************多個資料庫操作************/

//例子:

/** // 資料庫配置1

'db2' => [

// 資料庫型別

'type' => 'mysql',

// 伺服器位址

'hostname' => '127.0.0.1',

// 資料庫名

'database' => 'tpshop2',

// 資料庫使用者名稱

'username' => 'root',

// 資料庫密碼

'password' => '',

// 資料庫連線埠

'hostport' => '',

// 資料庫連線引數

'params' => ,

// 資料庫編碼預設採用utf8

'charset' => 'utf8',

// 資料庫表字首

'prefix' => 'tp_',

],依次類推

*///connect為鏈結資料庫

// $result = db::connect('db2')->query('select * from sb_ad where ad_id = 1');

// print_r($result);

// $result = db::connect('db3')->query('select * from sb_ad where ad_id = 1');

// print_r($result);

// $db1 = db::connect('db1');獲取資料庫物件

// $db2 = db::connect('db2');獲取資料庫物件然後再操作

// $db1->query('select * from sb_ad where ad_id = 1');

// $db2->query('select * from sb_ad where ad_id = 1');

/*****引數繫結******/

// db::execute('insert into sb_ad (ad_name, ad_content ,status) values (?, ?, ?)', [3, 'thinkphp', 1]);

// $result = db::query('select * from sb_ad where ad_id = ?', [3]);

// print_r($result);

/******命名佔位符繫結*****/

// db::execute('insert into sb_ad (ad_name, ad_content ,status) values (:ad_name, :ad_content, :status)', ['ad_name' => 11, 'ad_content' => 'thinkphp', 'status' => 1]);

// $result = db::query('select * from sb_ad where ad_id=:id', ['id' => 10]);

// print_r($result);

ThinkPHP5 1學習 模組設計

一 目錄結構 thinkphp5.1 預設是多模組架構,也可以設定為單模組操作 手冊摘入的結構列表 多模組設計在 url 訪問時,必須指定響應的模組名,比如 public test abc eat 如果你只有 test 這乙個模組時,你可以繫結這個模組,從而省略寫法 此時,url 呼叫就變成了 pu...

ThinkPHP5 1入門學習(一) 基礎

在學習thinkphp5.1之前,需要理解面對物件和命名空間的概念,可以去php手冊看看php的相關的基礎知識簡介 thinkphp是乙個快速 簡單的基於mvc和面對物件的輕量級php開發框架。安裝composer安裝和更新 我使用的是composer安裝 在linux和mac os x中可以執行如...

ThinkPHP5 1鉤子和行為

tp5.1的行為是乙個比較抽象的概念,執行的流程使用者的註冊,登入,退出登入等等都可以作為乙個行為。而不同的行為之間也具有位置共同性,比如,有些行為的作用位置在使用者註冊後,在登入之後,退出登入之後,等等有些行為的作用位置都是在應用執行前,有些行為都是在模板輸出之後,把這些行為發生作用的位置稱之為鉤...