$User = M('User','other_','MysqL://root:1234@192.168.1.10/demo#utf8');
PHP教程表示实例化User模型,连接的是demo数据库的other_user表,采用的连接信息是第三个参数配置的.
如果我们在项目配置文件中已经配置了DB_CONfig2的话,也可以采用:
$User = M('User','DB_CONfig2');
PHP教程以上便是本文的全部内容了,希望大家能够喜欢.
小编培训学院每天发布《ThinkPHP3.2.3数据库设置新特性》等实战技能,PHP、MysqL、LINUX、APP、JS,CSS全面培养人才。

ThinkPHP3.0新特性: 快捷查询
新版增加了快捷查询方式,可以进一步简化查询条件的写法,例如:
一、实现不同字段相同的查询条件
$User = M("User"); // 实例化User对象
$map[''name|title''] = ''thinkphp'';
// 把查询条件传入查询方法
$User->where($map)->select();
查询条件就变成 name= ''thinkphp'' OR title = ''thinkphp''
二、实现不同字段不同的查询条件
$User = M("User"); // 实例化User对象
$map[''status&title''] =array(''1'',''thinkphp'',''_multi''=>true);
// 把查询条件传入查询方法
$User->where($map)->select();
''_multi''=>true必须加在数组的最后,表示当前是多条件匹配,这样查询条件就变成 status= 1 AND title = ''thinkphp'' ,查询字段支持更多的,例如:
$map[''status&score&title''] =array(''1'',array(''gt'',''0''),''thinkphp'',''_multi''=>true);
查询条件就变成 status= 1 AND score >0 AND title = ''thinkphp''
注意:快捷查询方式中“|”和“&”不能同时使用。

ThinkPHP3.1.3版本新特性概述
thinkphp3.1.3版本有一些特性,还是值得关注的,下面来简单说下。
1、异常方面的改进
新版的ThinkPHP3.1.3重写了异常类ThinkException(其实是完全简化成了直接继承系统Exception类),并且把异常逻辑改进封装到Think类中。主要涉及到Think类的appException方法和halt函数。
并且改进后的异常处理支持系统致命错误的捕获,Think类增加了fatalError方法,原理是使用了
register_shutdown_function(array(''Think'',''fatalError''));
登录后复制
因此可以使得系统致命错误通过统一的异常模板界面友好提示。
2、对PDO参数绑定的支持
因为ThinkPHP3.*版本采用的是混合数据库驱动,同时也支持PDO方式,但之前版本并未针对PDO做优化,只是简单的封装。3.1.3版本完善了对PDO以及Sqlarv的支持,因为PDO和sqlsrv都支持参数绑定操作(注意,不支持参数绑定的数据库和驱动无法使用参数绑定功能)。
立即学习“PHP免费学习笔记(深入)”;
系统对参数绑定操作的支持分两种:自动绑定和手动绑定。
自动绑定是对于写入操作(这里包括数据的新增和更新),框架会自动把相关数据转换成参数绑定方式执行,这个部分不需要额外处理,因为sqlsrv只有采用参数绑定的方式传值才能支持UTF8数据写入,但是每次写入数据都要采用手动参数绑定的话,就会显得比较麻烦。为了避免和手动参数绑定冲突,自动参数绑定采用的是对字段名md5编码的方式。
手动绑定,通常用于查询条件之类的,并且采用bind连贯操作方法,例如:
$model->where(array(''id''=>'':id'',''name''=>'':name''))->bind(array('':id''=>$id,'':name''=>$name))->select();
登录后复制
3、增加变量安全获取方法
之前版本通过Action类的_post _get等方法来安全获取变量,虽然没问题,但局限是只能在控制器中获取变量,新版把这一功能独立成一个快捷方法I,可以用于任何地方。
使用方法如下:
I(''get.id'',0); // 获取$_GET[''id''] 如果不存在则默认为0
I(''post.name'','''',''htmlspecialchars''); // 获取$_POST[''name''] 采用htmlspecialchars方法过滤
I(''id''); // 获取id参数 自动判断get或者post
I(''param.id''); // 获取id参数 自动判断get或者post 和上面用法等效
I(''put.id''); // 获取put请求的id参数
登录后复制
还支持获取整个数组,例如:
I(''get.''); // 获取$_GET数组
I(''post.''); // 获取$_POST数组
登录后复制
在使用I方法的情况下,系统的VAR_FILTERS和DEFAULT_FILTER过滤配置依然有效。
4、where方法的多次调用
模型类的where方法可以支持数组方式的多次调用,例如:
$model->where(array(''a''=>1,''c''=>2))->where(array(''a''=>3,''b''=>1))->select();
登录后复制
多个where条件的时候,后面的条件会合并到前面的条件,最终的条件等效于:
$model->where(array(''a''=>3,''b''=>1,''c''=>2))->select();
登录后复制
5、控制器中的assign方法支持连贯操作
我们可以在控制器使用:
$this->assign(''name'',$name)->assign(''email'',$email)->display();
登录后复制
或者:
$this->assign(array(''name''=>$name,''email''=>$email))->display();
登录后复制

ThinkPHP3.1.3版本新特性概述_PHP
ThinkPHP
thinkphp3.1.3版本有一些特性,还是值得关注的,下面来简单说下。
1、异常方面的改进
新版的ThinkPHP3.1.3重写了异常类ThinkException(其实是完全简化成了直接继承系统Exception类),并且把异常逻辑改进封装到Think类中。主要涉及到Think类的appException方法和halt函数。
并且改进后的异常处理支持系统致命错误的捕获,Think类增加了fatalError方法,原理是使用了
1 | register_shutdown_function( array ( ''Think'' , ''fatalError'' ));
|
登录后复制
因此可以使得系统致命错误通过统一的异常模板界面友好提示。
2、对PDO参数绑定的支持
因为ThinkPHP3.*版本采用的是混合数据库驱动,同时也支持PDO方式,但之前版本并未针对PDO做优化,只是简单的封装。3.1.3版本完善了对PDO以及Sqlarv的支持,因为PDO和sqlsrv都支持参数绑定操作(注意,不支持参数绑定的数据库和驱动无法使用参数绑定功能)。
立即学习“PHP免费学习笔记(深入)”;
系统对参数绑定操作的支持分两种:自动绑定和手动绑定。
自动绑定是对于写入操作(这里包括数据的新增和更新),框架会自动把相关数据转换成参数绑定方式执行,这个部分不需要额外处理,因为sqlsrv只有采用参数绑定的方式传值才能支持UTF8数据写入,但是每次写入数据都要采用手动参数绑定的话,就会显得比较麻烦。为了避免和手动参数绑定冲突,自动参数绑定采用的是对字段名md5编码的方式。
手动绑定,通常用于查询条件之类的,并且采用bind连贯操作方法,例如:
1 | $model ->where( array ( ''id'' => '':id'' , ''name'' => '':name'' ))->bind( array ( '':id'' => $id , '':name'' => $name ))->select();
|
登录后复制
3、增加变量安全获取方法
之前版本通过Action类的_post _get等方法来安全获取变量,虽然没问题,但局限是只能在控制器中获取变量,新版把这一功能独立成一个快捷方法I,可以用于任何地方。
使用方法如下:
1 2 3 4 5 | I( ''get.id'' ,0); // 获取$_GET[''id''] 如果不存在则默认为0
I( ''post.name'' , '''' , ''htmlspecialchars'' ); // 获取$_POST[''name''] 采用htmlspecialchars方法过滤
I( ''id'' ); // 获取id参数 自动判断get或者post
I( ''param.id'' ); // 获取id参数 自动判断get或者post 和上面用法等效
I( ''put.id'' ); // 获取put请求的id参数
|
登录后复制
还支持获取整个数组,例如:
1 2 | I( ''get.'' ); // 获取$_GET数组
I( ''post.'' ); // 获取$_POST数组
|
登录后复制
在使用I方法的情况下,系统的VAR_FILTERS和DEFAULT_FILTER过滤配置依然有效。
4、where方法的多次调用
模型类的where方法可以支持数组方式的多次调用,例如:
1 | $model ->where( array ( ''a'' =>1, ''c'' =>2))->where( array ( ''a'' =>3, ''b'' =>1))->select();
|
登录后复制
多个where条件的时候,后面的条件会合并到前面的条件,最终的条件等效于:
1 | $model ->where( array ( ''a'' =>3, ''b'' =>1, ''c'' =>2))->select();
|
登录后复制
5、控制器中的assign方法支持连贯操作
我们可以在控制器使用:
1 | $this ->assign( ''name'' , $name )->assign( ''email'' , $email )->display();
|
登录后复制
或者:
1 | $this ->assign( array ( ''name'' => $name , ''email'' => $email ))->display();
|
登录后复制
关于ThinkPHP3.2.3数据库设置新特性和thinkphp数据库操作的介绍现已完结,谢谢您的耐心阅读,如果想了解更多关于PHP编程:ThinkPHP3.2.3数据库设置新特性、ThinkPHP3.0新特性: 快捷查询、ThinkPHP3.1.3版本新特性概述、ThinkPHP3.1.3版本新特性概述_PHP的相关知识,请在本站寻找。