thinkphp 数据相关操作
1.单数据查询
1、单数据查询 ,Db::table(‘tp_stu’) 必须加前缀
2、如果只是查询符合条件的使用where find,如果没有符合条件的返回null
3、使用 findOrFail 没有数据会抛出异常
4、使用 findOrEmpty 没有数据会返回【】
5、得到最近一个原生SQL 语句,Db::getlastSql();
<?php
namespace 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.增删改查
<?php
namespace 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);
}
}