thinkphp5.1 学习笔记 【SQL 语句】

在项目开发中 打印 原生 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);

        /**************多个数据库操作************/
        //在application/config.php中加入配置
        //例子:
        /*
         * // 数据库配置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)