原文: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. 【 D3.js 入门系列 — 4 】 如何使用比例尺( scale )

    上一章中使用了一个很重要的概念 — 比例尺( scale ),本节将解说其使用方法. 1. 最大值和最小值 在介绍比例尺( scale )之前,先介绍两个经常和比例尺一起出现的函数,在[第3章]中也出 ...

  2. ZOJ 3326 An Awful Problem 模拟

    只有在 Month 和 Day 都为素数的时候才能得到糖 那就模拟一遍时间即可. //#pragma comment(linker, "/STACK:16777216") //fo ...

  3. Google Map Android api V2 中使用MapView遇到CameraUpdateFactory is not initialized!的解决办法

    先说一下 Map V2 API Key 的问题吧: 在打包APP时需要自己生成一个XXX.keystore 用这个密室库生成的SHA1去申请的key 作为AndroidManifest.xml 中的K ...

  4. svn: keywords

    在文件头里面加入下面的关键字: $Date$ $ID$ $Revision$ $Author$ 代码在svn提交时,先选中这几个关键字再提交. Date可能出现中文乱码: 在Control Panel ...

  5. C--全排列的实现(递归方法) 傻子也能看懂的

      假设数组含有n个元素,则提取数组中的每一个元素做一次头元素,然后全排列除数组中除第一个元素之外的所有元素,这样就达到了对数组中所有元素进行全排列的得目的.[这句话才是重点!] 比如 1,2,3.的 ...

  6. 基于visual Studio2013解决C语言竞赛题之0704字符串长度

     题目

  7. OPENSSL库的使用-DES篇

    一.单DES算法ECB模式加解密 1.使用函数DES_set_key_unchecked设置密钥 2.使用函数DES_ecb_encrypt来进行数据加解密 void DES_ecb_encrypt( ...

  8. BNU Box of Bricks

    http://www.bnuoj.com/bnuoj/problem_show.php?pid=1596 这个题一开始以为要求最少移动次数,把我吓到了,原来只要求最少移动几个方块就行了..这一下就变简 ...

  9. 怎样实现多文件上传 在iOS开发中

    NSURL* url = [NSURL URLWithString:@"xxx"]; ASIFormDataRequest* request = [ASIFormDataReque ...

  10. NET Core R2跑Hello World

    在CentOS 7上安装.NET Core R2跑Hello World 前言 在上个月.NET Core出了最新版本预览版,只是在Window系统上试验了一下.原本想等发布正式版的时候在linux系 ...