PHP安装MongDB拓展
使用pecl安装mongo即可
sudo pecl install mongo
如果是安装了多个版本的PHP环境时,要针对摸一个版本进行安装时,最简单的方法是cd到你的对应版本的php安装环境,以7.1版本为例:
cd /your_php_path/71/bin
之后再执行
sudo ./pecl install mongo
注意是./pecl,执行的是当前bin目录下的pecl,而不是系统默认的pcel。
安装完成后再php.ini文件中添加
extension=php_mongodb.dll
至此,PHP的MongDB拓展安装完成。
ThinkPHP
下载ThinkPHP5,解压到网站运行目录,修改application/database.php文件配置ThinkPHP与MongDB的连接
<?php return [ // 数据库类型 'type' => '\think\mongo\Connection', // 服务器地址 'hostname' => '127.0.0.1', // 数据库名 'database' => 'your_dbName', // 用户名 'username' => '', // 密码 'password' => '', // 端口 'hostport' => '' ]; ?>
注意,使用了密码登陆的时候即使在database.php中填写的用户名和密码还会出现Authentication failed是因为ThinkPHP的坑,ThinkPHP在连接数据库时没有带上数据库名,导致认证失败,解决方法为修改/vendor/topthink/think-mongo/src/Connection.php中的第152行
// 在这段代码的最后加上 ."/".$this->dbName; $host = 'mongodb://' . ($config['username'] ? "{$config['username']}" : '') . ($config['password'] ? ":{$config['password']}@" : '') . $config['hostname'] . ($config['hostport'] ? ":{$config['hostport']}" : '')."/".$this->dbName;
修改后就可以正常连接了。
测试
使用robot 3t在数据库中新建一个集合,命名为ThinkTest;
在ThinkPHP的application的应用中新建一个控制器,内容如下
<?php namespace app\index\controller; use think\Db; class IndexController { public function index() { $result=Db::table('ThinkTest')->insert(array('this_is_a_key'=>'key_value')); var_dump($result); } }
保存,访问执行后,数据库中应会出现插入的信息。
注意,一定要引用Db类
use think\Db;
-
ThinkPHP无法使用order对MongoDB排序
:下一篇 »