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