当前位置: 首页 > news >正文

电商网站开发哪里好/数字化营销怎么做

电商网站开发哪里好,数字化营销怎么做,装修怎么做网站,wordpress ssmay发现很多开发者在使用ThinkPHP5.*的时候不明白Db和模型的正确使用姿势,尤其是在5.1版本里面,如果你没有使用下面的正确姿势,有很大可能性会踩坑。 Db的正确姿势 下面是官方推荐的Db类用法(也就是每次都是静态方法调用&#xff0…

发现很多开发者在使用ThinkPHP5.*的时候不明白Db和模型的正确使用姿势,尤其是在5.1版本里面,如果你没有使用下面的正确姿势,有很大可能性会踩坑。

Db的正确姿势

下面是官方推荐的Db类用法(也就是每次都是静态方法调用)

// 查询单个数据
Db::name('user')->where('id', 1)->find();
// 查询多个数据
Db::name('user')->where('id', '>', 1)->select();
// 写入新的数据
Db::name('user')->insert(['name' => '张三']);
// 更新数据
Db::name('user')->where('id', 1)->update(['name' => '李四']);
// 删除数据
Db::name('user')->delete(1);

很多开发者为了简化代码,喜欢使用下面的代码。

但是,永远不要在5.1中使用下面的代码!

// 错误的用法$user = Db::name('user');
// 查询单个数据
$user->where('id', 1)->find();
// 查询多个数据
$user->where('id', '>', 1)->select();
// 写入新的数据
$user->insert(['name' => '张三']);
// 更新数据
$user->update(['name' => '李四']);
// 删除数据
$user->delete(1);

即便是使用助手函数仍然不建议!

// 仍然是错误的用法// 查询单个数据
db('user')->where('id', 1)->find();
// 查询多个数据
db('user')->where('id', '>', 1)->select();
// 写入新的数据
db('user')->insert(['name' => '张三']);
// 更新数据
db('user')->update(['name' => '李四']);
// 删除数据
db('user')->delete(1);

很多开发者可能会奇怪,为什么是错误的用法呢?我使用的结果明明都没问题啊?这只是说明你还没踩坑罢了。

真正的原因,是5.1版本每次查询后是不会清空前次(5.0则会每次清空)的查询条件的,所以下面的用法是有效的。

$user = Db::name('user');
// 查询分数大于80分的用户总数
$count = $user->where('score', '>', 80)->count();
// 查询分数大于80分的用户数据
$user->select();

看到这里你应该明白了,当你使用的是同一个数据库查询对象实例的话,查询条件是始终会保留的(也就是会导致后面的查询条件错乱),而如果你使用助手函数或者手动实例化后多次操作都是相同的对象实例,除非你像下面一样手动清除。

$user = Db::name('user');
// 查询分数大于80分的用户总数
$count = $user->where('score', '>', 80)->count();
// 清除查询条件(但不包括排序或者字段等信息)
$user->removeOption('where');
// 查询所有用户数据 并按分数倒序排列 
$user->order('score', 'desc')->select();
// 清除所有查询条件
$user->removeOption();
// 查询分数等于100的用户
$user->where('score', 100)->select();

最佳实践:每次使用全新的Db静态查询

模型的正确姿势

模型的设计其实和Db一样,基本上不需要手动进行实例化。

// 写入新的数据
$user = User::create(['name' => '张三']);
// 更新数据
$user->update(['name' => '李四']);// 查询单个数据
$user = User::get(1);
// 删除当前模型数据
$user->delete();

上面的代码中,我们没有使用任何的实例化代码,都是使用静态方法操作。模型的实例化工作是由系统在查询或者写入数据的时候自动完成的。如果你自己手动实例化模型的话,会造成模型的重复实例化开销。

不建议的用法:

$user = new User;
// 写入新的数据
$user->name = '张三';
$user->save();
$user = new User;
$user->find(1);
echo $user->name;

建议用法:

// 写入新的数据
User::create(['name' => '张三']);
$user = User::get(1);
echo $user->name;

所以,请不要手动实例化模型,也不建议使用model助手函数。

最佳实践:模型查询和创建都使用静态方法

现在,你明白Db类和模型使用的正确姿势了么?

http://www.jmfq.cn/news/5159575.html

相关文章:

  • 中国林业工程建设协会网站/五八精准恶意点击软件
  • 纯css做网站/站长之家网站流量查询
  • 做贺卡的网站/电商网店
  • 荆州做网站公司/电脑培训班有哪些科目
  • 网站关键词搜不到了/百度快照优化培训班
  • 日本做外贸网站/上海百度推广优化公司
  • 网站建站售后服务/手机百度官网首页
  • 做网站建设公司crm在线/口碑营销的形式
  • wordpress暴力破解文件/优化网络搜索引擎
  • 快速 复制 建设网站/百度竞价培训班
  • wordpress后台忘记密码/西藏自治区seo 标题 关键词优化
  • 美妆网站建设方案/天津搜索引擎推广
  • 做网站的优惠广告/社群营销怎么做
  • 公司网站开发策划/如何在百度上投放广告
  • 网站建设微信托管/软文营销的概念
  • 大连网站前端制作公司/上海百度推广官方电话
  • 医疗网站建设信息/老鬼seo
  • 惠州网站建设选惠州邦/武汉百度快速排名提升
  • 做城市分类信息网站好做吗/图片识别 在线识图
  • 做任务网站建设/云南优化公司
  • 建站购物网站/免费网站大全
  • 西安企业网站建设代理机构/免费信息推广网站
  • 东营网站建设优化/推广引流渠道有哪些
  • 仙居手机网站开发/河南今日头条新闻
  • 广州开发网站设计/杭州seo网站建设靠谱
  • 做网站设计的/湖南seo推广服务
  • 个人建设网站流程/大数据营销专业
  • dw做高逼格的网站/网站推广怎么弄
  • wordpress模板博客/济南公司网站推广优化最大的
  • 怎么建自己公司网站/站长工具平台