thinkphp模型初步

来源:互联网 发布:网页生成软件 编辑:程序博客网 时间:2024/06/05 08:51

一:创建数据库(两种方法,推荐PDO)

方法一:全局配置定义(在Conf的config.php文件中配置)

//PDO专用定义'DB_TYPE'=>'pdo', //数据库类型'DB_USER'=>'root', //用户名'DB_PWD'=>'12345678', //密码'DB_PREFIX'=>'think_', //数据库表前缀'DB_DSN'=>'mysql:host=localhost;dbname=thinkphp;charset=UTF8',
方法二:PDO专用方法

//PDO专用定义'DB_TYPE'=>'pdo', //数据库类型'DB_USER'=>'root', //用户名'DB_PWD'=>'12345678', //密码'DB_PREFIX'=>'think_', //数据库表前缀'DB_DSN'=>'mysql:host=localhost;dbname=thinkphp;charset=UTF8',

二:实例化模型

$user = new Model("user");  //方法一 
$user = new Model("user",'think_','mysql:host=localhost;dbname=thinkphp;charset=UTF8');//方法二$user =M("user"); //方法三 不需要new$user = new UserModel();//方法四 需创建User模型类

如果你仅仅使用CURD 等数据库基本操作,我们建议使用基于Model 基类的M()方法。使用M()方法由于不需要加载具体的模型类(比如UserModel 类),所以性能会更高。

当然,如果有必要使用具体的模型类时,ThinkPHP 还提供了D()方法来直接是实例化模型类,并且还可以免去引入命名空间等操作。

$user = new D("user");//智能 前后端 Model$user = new D("Admin\user");//智能$user = M();  //有时,你可能想使用原生的 SQL 语句进行操作数据库。那么可以采用实例化空模型基类或者空 M()方法。var_dump($user->query("select * from think_user WHERE user = 'lzh'"));

三.字段定义(了解)

// 关闭字段缓存

'DB_FIELDS_CACHE'=>false//开启了调试模式,自动关闭

PS:如果开启缓存状态,新增了字段,那么可能新字段无法刷新出来,必须删除

/Data/_fields 文件夹,重新获取字段。

//查看字段结构

var_dump($user->getDbFields());

你也可以使用手动定义数据表字段的方式取代字段缓存方式,这种方式可以提高性能,避免IO 开销。

//手动定义数据表字段,_pk表示主键 
class UserModel extends Model {        protected $fields = array('id', 'user', '_pk'=>'id');    }//type 定义每个字段的类型,可以永远字段验证 
class UserModel extends Model {    protected $fields = array('id', 'user', '_pk'=>'id', 'type'=>array('id'=>'smallint','user'=>'varchar'));}






0 0