Database operation of thinkPHP5.0 framework

1. TP5.0 supports database types

Support for databases such as Mysql, SqlServer, PgSQL, and Sqlite.

2. How to connect to the database

        a. Configuration file directory
                            C:\AppServ\www\tp5\application\database.php

        b. How to configure
                            return [
                                 // database type
                                'type' => 'mysql',
                                // server address
                               'hostname' => '127.0.0.1',
                               // database name
                               'database' => 'yzmedu',
                               // user name
                               'username' => 'root',
                               // password
                               'password' => '123456789',
                               // port
                               'hostport' => '3306',
                         ];

        c. How to use

            // Instantiate the system database class

            $DB=new Db;

            // Query data

            $data=$DB::table("user")->select();

            // use sql statement

            $data=$DB::query("select * from user");

Third, the basic use of the database

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. Modify
                      #Return value affects the number of rows
                     $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. View

        $data=Db::query("select * from user");
                   $data=Db::query("select * from user where  id >=? and id<=?",[5,8]);

    5. Get the specified sql statement

        Db::getLastSql();

4. Database processing
    

1. Query operation.

        1. Table method query data

            // Query all data
            // SELECT * FROM `user`
            $data=Db::table("user")->select();

            // Query a piece of data
            // SELECT * FROM `user` LIMIT 1
            $data=Db::table("user")->find();

        2. The name method queries data
            // related to the configuration file
            // name will automatically add the table prefix in the configuration file
            $data=Db::name("user")->select();
            $data=Db::name( "user")->find();

        3. Helper function

            # SELECT * FROM `user`
            $data=db("user")->select();

            # SELECT * FROM `user` LIMIT 1
            $data=db("user")->find();

        4. Where conditions match

            // 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 or match

            // 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 intercepts data

            // 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 set query 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 realizes paging effect

            // SELECT * FROM `user` LIMIT 5,5
            $data=Db::table("user")->page("1,5")->select();

        10. Group aggregation

            // SELECT `pass`,count(*) tot FROM `user` GROUP BY pass

            $data=Db::table("user")->field("pass,count(*) tot")->group("pass")->select();

        11. Having filter
            // Can only be used in combination with grouping
            // 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. Multi-table query

            // 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. Alias ​​use - alias the table

            // 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 set

            // SELECT `name` FROM `user` UNION select name from goods
            $data=Db::field("name")->table("user")->union("select name from goods")->select();

        15. Parameter binding (bind) In order to prevent sql injection
            
            # DELETE FROM `user` WHERE `id` = 25
            $id=input("id");
            $data=Db::table("user")->where( "id",":id")->bind(["id"=>[$id,\PDO::PARAM_INT]])->delete();

        16. Statistics

            // 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");
 

Guess you like

Origin blog.csdn.net/qq_43269730/article/details/100056607