thinkphp 数据相关操作
1.单数据查询
1、单数据查询 ,Db::table(‘tp_stu’) 必须加前缀
2、如果只是查询符合条件的使用where find,如果没有符合条件的返回null
3、使用 findOrFail 没有数据会抛出异常
4、使用 findOrEmpty 没有数据会返回【】
5、得到最近一个原生SQL 语句,Db::getlastSql();
< ?phpnamespace app\ controller; use think\ facade\ Db; class TestDb
{ public function find ( ) { //1、单数据查询 ,Db::table( 'tp_stu' ) 必须加前缀//http://localhost:8000/testDb/find// $res = Db::table( 'tp_stu' ) -> select( ) ; //如果只是查询符合条件的使用where find,如果没有符合条件的返回null// $res = Db::table( 'tp_stu' ) -> where( 'id' , 14 ) -> find( ) ; //使用 findOrFail 没有数据会抛出异常// $res = Db::table( 'tp_stu' ) -> where( 'id' , 4 ) -> findOrFail( ) ; //使用 findOrEmpty 没有数据会返回【】$res = Db::table( 'tp_stu' ) -> where( 'id' , 14 ) -> findOrEmpty( ) ; //得到最近一个原生SQL 语句// return Db::getlastSql( ) ; return json( $res ) ; }
}
2.增删改查
< ?phpnamespace app\ controller; use think\ facade\ Db; class Testgsc
{ public function find ( ) { $data = Db::name( 'stu' ) ; //数据库链式调用// var_dump( $data ) ; // $data = $data -> where( 'id' , 4 ) -> select( ) ; // dump( $data ) ; //save 自动判断新增还是修改,如果传入主键//可以使用save方法统一写入数据,自动判断是新增还是更新数据(以写入数据中是否存在主键数据为依据)。$testData = [ "age" = > 3035 ,'name' = > '皇帝的新装3bbbb00-x' ,"address" = > 'xian' ] ; echo $testData [ 'age' ] ; echo '<br/>' ; // $data -> save( $testData ) ; //如果插入的字段数据库表没有会抛出异常// $n = $data -> insert( $testData ) ; //strict( false) 忽略异常不错报错//可以使用insertGetId方法新增数据并返回主键值:// $n = $data -> strict( false) -> insertGetId( $testData ) ; // $n = $data -> replace( ) -> insert( $testData ) ; // echo $n ; //数据新增方法//多条新增;//insertAll 添加多条数据$datas = [ [ "name" = > "name1" ,'age' = > 24 ] ,[ "name" = > "name2" ,'age' = > 20 ] ,[ "name" = > "name3" ,'age' = > 22 ] ,[ "name" = > "name4" ,'age' = > 29 ] ] ; // $data -> insertAll( $datas ) ; //1.更新数据通用方法 save// $data -> save( [ // "id" = > 11 ,// "name" = > '修改名字了' // ] ) ; //2、修改数据update方法// $data -> where( 'id' , 23 ) -> update( [ // "name" = > '修改了名字用update' ,// "age" = > 200 // ] ) ; //3、删除delete 不到条件是全部清空表数据$data -> where( 'id' , '>' , 10 ) -> delete( ) ; return Db::getLastSql( ) ; return json( $data ) ; }
}