版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/yingzhicai/article/details/52108157
读取数据库
1.配置数据库
- 修改系统默认配置,在ThinkPHP/Conf/Conversion.php下
/* 数据库设置 */
'DB_TYPE' => 'mysql', // 数据库类型
'DB_HOST' => 'localhost', // 服务器地址
'DB_NAME' => 'dbershou', // 数据库名
'DB_USER' => 'root', // 用户名
'DB_PWD' => '', // 密码
'DB_PORT' => '80', // 端口
'DB_PREFIX' => '', // 数据库表前缀
'DB_PARAMS' => array(), // 数据库连接参数
'DB_DEBUG' => TRUE, // 数据库调试模式 开启后可以记录SQL日志
'DB_FIELDS_CACHE' => true, // 启用字段缓存
'DB_CHARSET' => 'utf8', // 数据库编码默认采用utf8
- 也可以配置config.php在Application/Common/Conf/目录下
<?php
return array(
//'配置项'=>'配置值'
//数据库配置信息
'DB_TYPE' => 'mysql', // 数据库类型
'DB_HOST' => 'localhost', // 服务器地址
'DB_NAME' => 'thinkphp', // 数据库名
'DB_USER' => 'root', // 用户名
'DB_PWD' => '', // 密码
'DB_PORT' => 3306, // 端口
'DB_PREFIX' => '', // 数据库表前缀
'DB_CHARSET'=> 'utf8', // 字符集
);
2.了解D方法和M方法的实例化的区别
D方法的参数就是模型的名称,并且和模型类的大小写定义是一致的
D方法可以自动检测模型类,如果存在自定义的模型类,则实例化自定义模型类,如果不存在,则会实例化系统的\Think\Model基类,同时对于已实例化过的模型,不会重复去实例化。
如果你仅仅是对数据表进行基本的CURD操作的话,使用M方法实例化的话,由于不需要加载具体的模型类,所以性能会更高。参数是数据库的表名。
<?php
namespace Home\Controller;
use Think\Controller;
class IndexController extends Controller
{
public function index()
{
$User = M('tb_user');
$data = $User->select();
var_dump($data);
}
}
如果你仅仅是使用原生SQL查询的话,不需要使用额外的模型类,实例化一个空模型类即可进行操作了
//实例化空模型
$Model = new Model();
//或者使用M快捷方法是等效的
$Model = M();
//进行原生的SQL查询
$Model->query('SELECT * FROM think_user WHERE status = 1');
使用D方法实例化,传入一个模型的名称即可
<?php
namespace Home\Controller;
use Think\Controller;
class IndexController extends Controller
{
public function index()
{
$user = D("User");
$this->display("User/main_index"); //加载视图
}
public function add()
{
$user = D("User");
$user->add();
}
public function update()
{
$user = D("User");
$user->update();
}
}
<?php
namespace Home\Model;
use Think\Model;
class UserModel extends Model
{
public function index()
{
$user = M("user");
return $user->select();
}
public function add()
{
$User = M("User"); // 实例化User对象
$data['username'] = '555';
$data['password'] = '666';
$User->add($data);
}
public function update()
{
$User = M("User"); // 实例化User对象
// 要修改的数据对象属性赋值
$User->username = 'ThinkPHP';
$User->password = '[email protected]';
$User->where('id=8')->save(); // 根据条件更新记录
}
}