thinkphp5.1学习过程七——数据库操作
<?phpnamespace appindexcontroller;
use thinkDb;
/**
* Class Demo5
* @package appindexcontroller
* 查询构造器
* 准备工作:app_debug=>"true";app_trace="true";
* 系统学习数据据库的增删改查:CURD
*/
class Demo5
{
//1.单条查询
public function find()
{
/**
* Db类数据库操作的入口类
* 功能:静态调用thinkdbquery.php类中的查询方法实现基本操作
* table():选择数据表
* where():设置查询条件 表达式,数组
* 1.单个条件 使用表达式
* 2.对于多个条件使用数组
* find()返回符合条件的第一条记录,没有的话返回NULL
*/
$res=Db::table("blog")
//->field("id,name,content")
//->field(["id"=>"asdf","name"=>"qwer","content"=>"zxcv"])
->where("id","=",1)//如果是相等关太详细,=可省略
->find();
dump(is_null($res)?"没有找到":$res);
}
//2.多条查询
public function select()
{
//select()返回的是一个二维数组,没有数据返回是一个空数据
$res=Db::table("blog")
->field("id,name,title")
->where([
["user_id","=","0"],
["category_id",">=",0]
])
->select();
if(empty($res)){
return "没有满足条件的记录";
}else{
foreach($res as $row){
dump($row);
}
}
}
//单条插入
public function insert()
{
//insert()成功返回新增的数量,失败返回false
//准备一下要插入的数据
$data=[
"name"=>"js1",
"title"=>"js学习",
"content"=>"现在学习js框架",
"user_id"=>0,
"category_id"=>1,
"recommend"=>1,
"read_count"=>0,
"create_time"=>time(),
"update_time"=>time(),
"publish_time"=>time(),
];
//return Db::table("blog")->insert($data);
//只有数据库类型为MYSQL的时候,才可以传入true
//return Db::table("blog")->insert($data,true);
//这样做可以提高对数据的安全处理,insert中不支持true
//return Db::table("blog")->data($data)->insert();
//插入的同时返回新增主键ID,insertGetId()同时执行两步,第一步插入,第二步返回主键主id
return Db::table("blog")->insertGetId($data);
}
//4.添加多条
public function insertAll()
{
$data=[
["name"=>"js2","title"=>"js2学习","content"=>"现在学习js框架","user_id"=>0,
"category_id"=>1,"recommend"=>1,"read_count"=>0,"create_time"=>time(),
"update_time"=>time(),"publish_time"=>time(),],
["name"=>"js3","title"=>"js3学习","content"=>"现在学习js框架","user_id"=>0,
"category_id"=>1,"recommend"=>1,"read_count"=>0,"create_time"=>time(),
"update_time"=>time(),"publish_time"=>time(),],
["name"=>"js4","title"=>"js4学习","content"=>"现在学习js框架","user_id"=>0,
"category_id"=>1,"recommend"=>1,"read_count"=>0,"create_time"=>time(),
"update_time"=>time(),"publish_time"=>time(),],
];
// return Db::table("blog")->insertAll($data);
return Db::table("blog")->data($data)->insertAll();
}
//更新操作
public function update()
{
//update()必须要有更新条件
//return Db::table("blog")
//->where("id","=",13)
//->update(["name"=>"html"]);
//如果更新条件是主键的话,可以直接把主键写到更新数组中
return Db::table("blog")
->update(["name"=>"css","id"=>12]);
}
//删除操作
public function delete()
{
// return Db::table("blog")
//->delete(13);
return Db::table("blog")
->where("id",12)
->delete();
}
//原生查询
public function query()
{
$sql="SELECT "name","title" FROM blog WHERE id IN(1,2,3)";
dump(Db::query($sql));
}
//原生写操作:更新,删除,添加
public function execute()
{
// return Db::execute("UPDATE blog SET name="css" WHERE id=11");
// return Db::execute("INSERT blog SET name="asp"");
return Db::execute("DELETE FROM blog WHERE id=11");
}
}
以上是 thinkphp5.1学习过程七——数据库操作 的全部内容, 来源链接: utcz.com/z/510947.html