在專案開發中 列印 原生 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的行為是乙個比較抽象的概念,執行的流程使用者的註冊,登入,退出登入等等都可以作為乙個行為。而不同的行為之間也具有位置共同性,比如,有些行為的作用位置在使用者註冊後,在登入之後,退出登入之後,等等有些行為的作用位置都是在應用執行前,有些行為都是在模板輸出之後,把這些行為發生作用的位置稱之為鉤...