thinkphp mongo模型数据库配置

今天尝试使用thinkphp中的mongo模型,发现总是会报错

Call to a member function selectCollection() on a non-object

找了一下原因,发现是配置文件未导入,导致无法连接数据库和实例化模型。看了一下配置文件,并没有任何错误,配置文件如下

return array(
//‘配置项‘=>‘配置值‘
‘DB_CONFIG‘ => array(‘DB_TYPE‘ => ‘mongo‘,
‘DB_HOST‘ => ‘localhost‘,
‘DB_NAME‘ => ‘mydb‘,
‘DB_USER‘ => ‘‘,
‘DB_PWD‘ => ‘‘,
‘DB_PORT‘ => ‘27017‘,
‘DB_PREFIX‘ => ‘‘,
‘DB_CHARSET‘=> ‘utf8‘
)
);

model中:

protected $connection = ‘DB_CONFIG‘;

于是改用另外一种写法,model中直接定义,发现居然成功了

protected $connection = array(‘DB_TYPE‘ => ‘mongo‘,
‘DB_HOST‘ => ‘localhost‘,
‘DB_NAME‘ => ‘mydb‘,
‘DB_USER‘ => ‘‘,
‘DB_PWD‘ => ‘‘,
‘DB_PORT‘ => 27017,
‘DB_PREFIX‘ => ‘‘,
‘DB_CHARSET‘=> ‘utf8‘
);

继续尝试将配置文件改为:

return array(
//‘配置项‘=>‘配置值‘
‘DB_TYPE‘ => ‘mongo‘,
‘DB_HOST‘ => ‘localhost‘,
‘DB_NAME‘ => ‘mydb‘,
‘DB_USER‘ => ‘‘,
‘DB_PWD‘ => ‘‘,
‘DB_PORT‘ => ‘27017‘,
‘DB_PREFIX‘ => ‘‘,
‘DB_CHARSET‘=> ‘utf8‘
);

删除了DB_CONFIG的定义,直接返回,发现也可以成功连接。

不清楚是不是对mongo模型,tp不支持第一种配置方法,但是文档中确实是有这种配置方法的,而且对mysql也是可以正常使用的

thinkphp mongo模型数据库配置

上一篇:sql server远程备份和恢复


下一篇:adb shell