thinkphp 连接数据库 & 实例化模型操作 (下接thinkphp CURD 操作)/慕课
7.1 连接数据库 (06:15) 1
7.2实例化模型 1
1.实例化基础模型 2
2. 实例化用户自定义模型 2
问题 2
3. 实例化公共模型 4
4. 实例化空模型 7
7.1 连接数据库 (06:15)
Tp内置啦一个数据库函数 支持大多主流数据库
数据库配置
'DB_TYPE' => 'mysql', // 数据库类型
'DB_HOST' => 'www.234.com', // 服务器地址
'DB_NAME' => 'muck', // 数据库名
'DB_USER' => 'root', // 用户名
'DB_PWD' => 'root', // 密码
'DB_PORT' => '3306', // 端口
'DB_PREFIX' => 'mk_', // 数据库表前缀
7.2实例化模型
1.实例化基础模型
public function user(){
//1.实例化基础模型
//$user=new Model('user');//表名,表前缀,数据库连接信息
$user=M('user');
$data=$user->select();//查询表
dump($data);
D方法是M方法的高级方法 调用模型中的
M方法是实例化模型,不用定义用户的模型和模型类,在使用D方法时候如果他没有找到他的自定义模型的话,自动转成M方法转化成 基础模型的实例
2.实例化用户自定义模型
问题 controller调用model层调用不出来
实例化时应该在类名前加上命名空间就行了
完整DEMO
Controller层
<?php
namespace Home\Controller;
use Think\Controller;
class IndexController extends Controller {
public function user(){
//1.实例化基础模型
//$user=new Model('user');//表名,表前缀,数据库连接信息
// $user=M('user');
// $data=$user->select();//查询表
// dump($data);
//2.实例化用户自定义模型
$user=D('User');
echo $user->getinfo();
}
}
Model层
<?php
namespace Home\Model;
use Think\Model;
/**
* Created by PhpStorm.
* User: Administrator
* Date: 2017/8/24 0024
* Time: 21:05
*/
class UserModel extends Model{
public function getinfo(){
//添加自己的业务逻辑
return 'helloworld';
}
}
代码
<?php
namespace Home\Controller;
use Think\Controller;
class IndexController extends Controller {
public function user(){
//1.实例化基础模型
//$user=new Model('user');//表名,表前缀,数据库连接信息
// $user=M('user');
// $data=$user->select();//查询表
// dump($data);
//2.实例化用户自定义模型
$user=D('User');
// echo $user->getinfo();
$data=$user->select();
dump($data);
}
}
http://www.234.com/test/index/user
3.实例化公共模型
数据库有十个二十个表,都是公共的表,公共模型就起到作用了
class CommonModel extends Model{
public function strmake($str){
return md5(shal(md5($str)));
}
}
完整代码
model
<?php
namespace Home\Model;
use Think\Model;
/**
* Created by PhpStorm.
* User: Administrator
* Date: 2017/8/25 0025
* Time: 14:03
*/
class CommonModel extends Model{
public function strmake($str){
return (md5($str));
}
}
Controller
<?php
namespace Home\Controller;
use Think\Controller;
class IndexController extends Controller {
public function user(){
//1.实例化基础模型
//$user=new Model('user');//表名,表前缀,数据库连接信息
// $user=M('user');
// $data=$user->select();//查询表
// dump($data);
//2.实例化用户自定义模型
// $user=D('User');
//// echo $user->getinfo();
// $data=$user->select();
// dump($data);
//3.实例化公共模型
$user=D('Common');
echo $user->strmake('aaaaa');
}
}
OOP思想,在继承里面
Model
<?php
namespace Home\Model;
use Think\Model;
/**
* Created by PhpStorm.
* User: Administrator
* Date: 2017/8/25 0025
* Time: 14:03
*/
class CommonModel extends Model{
public function strmake($str){
return (md5($str));
}
}
<?php
namespace Home\Model;
use Think\Model;
/**
* Created by PhpStorm.
* User: Administrator
* Date: 2017/8/24 0024
* Time: 21:05
*/
class UserModel extends CommonModel{
public function getinfo(){
//添加自己的业务逻辑
return 'helloworld';
}
}
Controller
<?php
namespace Home\Controller;
use Home\Model\CommonModel;
use Think\Controller;
class IndexController extends Controller {
public function user(){
//1.实例化基础模型
//$user=new Model('user');//表名,表前缀,数据库连接信息
// $user=M('user');
// $data=$user->select();//查询表
// dump($data);
//2.实例化用户自定义模型
// $user=D('User');
//// echo $user->getinfo();
// $data=$user->select();
// dump($data);
//3.实例化公共模型
// $user=new CommonModel();
// echo $user->strmake('aaaaa');
$user=D('User');
echo $user->strmake('bbbbbb');
}
}
结果
4.实例化空模型
//实例化空模型
$model=M();
// $data=$model->query('select * from mk_user');//读取日常select
// dump($data);
$data=$model->execute('update mk_user set user_name="kitty" where id=6');//写入 update insert
dump($data);
}
结果
总结,一般用1,2,3方法,4 方法不推荐使用
M D 实例化模型的 区别
thinkphp 连接数据库 & 实例化模型操作 (下接thinkphp CURD 操作)/慕课的更多相关文章
- Thinkphp入门 五 —模型 (49)
原文:Thinkphp入门 五 -模型 (49) [数据库操作model模型] model 模型 数据库操作 tp框架主要设计模式:MVC C:controller 控制器 shop/Li ...
- 【三十二】thinkphp之连接数据库、实例化模型
1.连接数据库 Thinlphp内置了抽象数据库访问层,把不同的数据操作封装起来.我们只需要调用公共的DB类进行操作即可.DB类会自动调用相应的数据库驱动来处理. 在应用目录/common/conf/ ...
- ThinkPHP学习笔记 实例化模型的四种方法
创建Action类 [php] <?php class NewObjectAction extends Action{ public function index(){ ...
- thinkphp模型事件(钩子函数:模型中在增删改等操作前后自动执行的事件)
thinkphp模型事件(钩子函数:模型中在增删改等操作前后自动执行的事件) 一.总结 1.通过模型事件(钩子函数),可以在插入更新删除等前后执行一些特定的功能 2.模型事件是写在模型里面的,控制器中 ...
- [转]ThinkPHP中实例化对象M()和D()的区别,select和find的区别
1.ThinkPHP中实例化对象M()和D()的区别 在实例化的过程中,经常使用D方法和M方法,这两个方法的区别在于M方法实例化模型无需用户为每个数据表定义模型类,如果D方法没有找到定义的模型类,则会 ...
- ThinkPHP中的模型二
ThinkPHP中的模型 1.为什么要创建数据对象 案例:使用ThinkPHP完成部门管理 ① 设计数据库 ② 创建Dept控制器 路径:./Application/Admin/Controller创 ...
- ThinkPHP中的模型
ThinkPHP中的模型 1.什么是模型(Model) 模型表示企业数据和业务规则,实际项目开发中,主要实现与数据库进行操作. 2.模型的定义规则 模型类的命名规则是除去表前缀的数据表名称,采用驼峰法 ...
- thinkphp框架之模型(数据库查询)
1. 模型定义 文件名称必须是 表名+Model.class.php 例如:UserModel.class.php namespace Home\Model; //该模型类的命名空间 use Thin ...
- ThinkPHP中实例化对象M()和D()的区别,select和find的区别
原文:ThinkPHP中实例化对象M()和D()的区别,select和find的区别 1.ThinkPHP中实例化对象M()和D()的区别 在实例化的过程中,经常使用D方法和M方法,这两个方法的区别在 ...
随机推荐
- Spring集成Quartz定时任务框架介绍
在JavaEE系统中,我们会经常用到定时任务,比如每天凌晨生成前天报表,每一小时生成汇总数据等等.我们可以使用java.util.Timer结合java.util.TimerTask来完成这项工作,但 ...
- 【转】link_to中delete无效的问题解决
问题一 1.问题描述:点击[删除]链接之后,跳到了show页面,完全没有弹出框提示 <%= link_to "删除", product_path(product.id), : ...
- apache + tomcat 负载均衡分布式集群配置
Tomcat集群配置学习篇-----分布式应用 现目前基于javaWeb开发的应用系统已经比比皆是,尤其是电子商务网站,要想网站发展壮大,那么必然就得能够承受住庞大的网站访问量:大家知道如果服务器访问 ...
- C#数据导出到Excel源代码
最近工作中需要做一个把用户信息作为excel导出的功能,就顺便整理搜集了一些常用的导出文件的源代码,以供以后不时之需,也希望能给大家带来一些方便 一.DataSet数据集内数据转化为Excel // ...
- Ok6410挂载NFS
虚拟机: apt-get install portmap apt-get install nfs-kernel-server mkdir /nfs/root/mNFS chmod 777 /nf ...
- DAY13-前端之BOM和DOM
前戏 到目前为止,我们已经学过了JavaScript的一些简单的语法.但是这些简单的语法,并没有和浏览器有任何交互. 也就是我们还不能制作一些我们经常看到的网页的一些交互,我们需要继续学习BOM和DO ...
- DAY7-面向对象之封装
一.引子 从封装本身的意思去理解,封装就好像是拿来一个麻袋,把小猫,小狗,小王八,还有alex一起装进麻袋,然后把麻袋封上口子.照这种逻辑看,封装=‘隐藏’,这种理解是相当片面的 二.先看如何隐藏 在 ...
- JAVA对Excel文件进行操作
JAVA EXCEL API:是一开放源码项目,通过它Java开发人员可以读取Excel文件的内容.创建新的Excel文件.更新已经存在的Excel文件.使用该API非Windows操作系统也可以通过 ...
- 爬取google的搜索结果并保存
demo: #coding:utf- import requests from bs4 import BeautifulSoup import bs4 import re def getHTMLTex ...
- Ros学习——值得学习的package
RViz是一款强大的可视化工具,它允许你查看机器人中的传感器和内部状态. TF程序包(package)提供在机器人所使用到的各种坐标系之间的变换功能,并保持跟踪这些变换的变化. actionlib - ...