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 HomeController;
use ThinkController;
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 HomeModel;
use ThinkModel;
/**
* Created by PhpStorm.
* User: Administrator
* Date: 2017/8/24 0024
* Time: 21:05
*/
class UserModel extends Model{
public function getinfo(){
//添加自己的业务逻辑
return 'helloworld';
}
}
代码
<?php
namespace HomeController;
use ThinkController;
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 HomeModel;
use ThinkModel;
/**
* 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 HomeController;
use ThinkController;
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 HomeModel;
use ThinkModel;
/**
* 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 HomeModel;
use ThinkModel;
/**
* 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 HomeController;
use HomeModelCommonModel;
use ThinkController;
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 实例化模型的 区别