原文:Thinkphp入门 五 —模型 (49)

【数据库操作model模型】

model  模型  数据库操作

tp框架主要设计模式:MVC

C:controller   控制器   shop/Lib/Action/具体控制器

V:view       视图     shop/Tpl/分组/模板文件

M:model      数据模型  shop/Lib/Model/具体模型

【创建模型】

创建的原则:一个数据表对应一个数据模型

创建模型:

当出现以下信息,说明我们的数据库没有配置用户名和密码config.php

【数据库使用步骤】:

  1. 创建模型model文件shop/Lib/Model/GoodsModel.class.php
  2. 在config.php里边设置数据库的库名、用户名、密码、表前置信息
  3. 在控制器里边可以直接实例化GoodsModel模型对象

【数据库配置config.php】:

【从数据库获得相关信息—查询】

我们使用select()方法从数据库获得数据信息,该方法返回一个二维数组,

如果我们想要获得一条记录,就使用find()方法,该方法返回一维数组

$goods  ->  select()   //获得全部记录、全部字段结果

$goods  ->  select(15)  //获得主键等于15 的记录结果

$goods  ->  select(“10,15,20”)  //获得主键在10、15、20范围内的记录信息

$goods  ->  find(16);   //以一维数组的形式给我们返回主键等于16的记录信息

$goods  ->  getByXXX();  //根据具体XXX字段做where条件进行查询,一维数组结果返回。该方法会走Model.class.php 里边的__call()自动条件方法。

【大小写问题】:

【通过model模型获得数据具体演示】:

【实例化模型方式】

  1. 传统方式new  GoodsModel()就可以
  2. 可以同过快捷函数D()来实例化模型对象

例如: D(‘Goods’);  实例化Goods模型对象

D();   实例化基类对象,该对象在使用的时候需要指定“数据表名”

和主键名字,较复杂,不推荐直接使用

  3 通过快捷函数M()实例化基类对象

例如:M()  实例化Model.class.php对应的对象,该方法不推荐使用

  【 创建一个模型,有可能这个模型对应的表前缀与其他表前缀不一致,那么这个模型就需要定义自己的真实表名字】:

  

Thinkphp入门 五 —模型 (49)的更多相关文章

  1. Thinkphp入门 一 (45)

    原文:Thinkphp入门 一 (45) 什么是框架? 就是一堆代码的集合,这些代码可以有变量.常量.函数.类等等.这些代码彼此紧密联系,彼此有合作关系.里边还有设计模式:MVC.单例.工厂等等. 为 ...

  2. 脑残式网络编程入门(五):每天都在用的Ping命令,它到底是什么?

    本文引用了公众号纯洁的微笑作者奎哥的技术文章,感谢原作者的分享. 1.前言   老于网络编程熟手来说,在测试和部署网络通信应用(比如IM聊天.实时音视频等)时,如果发现网络连接超时,第一时间想到的就是 ...

  3. openresty 前端开发入门五之Mysql篇

    openresty 前端开发入门五之Mysql篇 这章主要演示怎么通过lua连接mysql,并根据用户输入的name从mysql获取数据,并返回给用户 操作mysql主要用到了lua-resty-my ...

  4. ThinkPHP中的模型二

    ThinkPHP中的模型 1.为什么要创建数据对象 案例:使用ThinkPHP完成部门管理 ① 设计数据库 ② 创建Dept控制器 路径:./Application/Admin/Controller创 ...

  5. ThinkPHP中的模型

    ThinkPHP中的模型 1.什么是模型(Model) 模型表示企业数据和业务规则,实际项目开发中,主要实现与数据库进行操作. 2.模型的定义规则 模型类的命名规则是除去表前缀的数据表名称,采用驼峰法 ...

  6. Thinkphp入门 四 —布局、缓存、系统变量 (48)

    原文:Thinkphp入门 四 -布局.缓存.系统变量 (48) [控制器操作方法参数设置] http://网址/index.php/控制器/操作方法 [页面跳转] [变量调节器] Smarty变量调 ...

  7. Thinkphp入门三—框架模板、变量(47)

    原文:Thinkphp入门三-框架模板.变量(47) [在控制器调用模板] display()   调用当前操作名称的模板 display(‘名字’)  调用指定名字的模板文件 控制器调用模板四种方式 ...

  8. Thinkphp入门 二 —空操作、空模块、模块分组、前置操作、后置操作、跨模块调用(46)

    原文:Thinkphp入门 二 -空操作.空模块.模块分组.前置操作.后置操作.跨模块调用(46) [空操作处理] 看下列图: 实际情况:我们的User控制器没有hello()这个方法 一个对象去访问 ...

  9. DevExpress XtraReports 入门五 创建交叉表报表

    原文:DevExpress XtraReports 入门五 创建交叉表报表 本文只是为了帮助初次接触或是需要DevExpress XtraReports报表的人群使用的,为了帮助更多的人不会像我这样浪 ...

随机推荐

  1. 一步一步重写 CodeIgniter 框架 (5) —— 实现Controller,并加载Model

    CodeIgniter 框架采用MVC模式,而MVC模式中起纽带作用的就是C(控制器),在控制器的中通过加载模型获得数据,将数据传到视图中进行展示.本课将实现在控制器中加载模型. 1. 控制器的实现 ...

  2. java里,当long与上了int

    long switchState = 0xf0000000000L; int result = (switchState & 0xff00000000L) > 0 ? 0x01 : 0x ...

  3. hdu 4885 TIANKENG’s travel(bfs)

    题目链接:hdu 4885 TIANKENG's travel 题目大意:给定N,L,表示有N个加油站,每次加满油能够移动距离L,必须走直线,可是能够为斜线.然后给出sx,sy,ex,ey,以及N个加 ...

  4. 打开sa属性报错

    --如果打开sa属性报错如下:无法显示请求的对话框.属性IsLocked不可用于“登录名sa".该对象可能没有此属性,也可能是访问权限不足而无法检索 --解决办法:首先用windows登录, ...

  5. sql2008r2局域网复制订阅实操

    10.129.186.37 本机 10.129.186.95 服务器 局域网环境 复制类型:事务复制 注意点:要复制的表,必须有主键,否则不可选复制表. 要点1,局域网尝试用共享的方式保存快照文件夹, ...

  6. 我的Python成长之路---第一天---Python基础(作业2:三级菜单)---2015年12月26日(雾霾)

    作业二:三级菜单 三级菜单 可一次进入各个子菜单 思路: 这个题看似不难,难点在于三层循环的嵌套,我的思路就是通过flag的真假来控制每一层的循环的,简单来说就是就是通过给每一层循环一个单独的布尔变量 ...

  7. 小记:css特殊性

    今天早上遇到了个小bug,刚好用从css权威指南学到的知识解决了 html结构 <ul class="portlet-nav"> <li><a id= ...

  8. 关于C(m,n)%p的故事

    序 遥远的\(\mod p\)(\(p\)是质数)大陆有一个恶魔:\[C(m,n)={m!\over n! (m-n)!}\] 于是大家有了各种求逆元的方法.这里MOD = p. 壹 for (int ...

  9. 枚举+搜索 hdu-4431-Mahjong

    题目链接: http://acm.hdu.edu.cn/showproblem.php?pid=4431 题目大意: 给一副牌,求出所有能糊的牌. 解题思路: 枚举每一张牌,看能不能糊. 因为一共只有 ...

  10. 数学之路-python计算实战(15)-机器视觉-滤波去噪(归一化块滤波)

    # -*- coding: utf-8 -*- #code:myhaspl@myhaspl.com #归一化块滤波 import cv2 import numpy as np fn="tes ...