【MongoDB】从入门到放弃 - ThinkPHP与MongoDB的使用 - 学生信息管理系统(二)

天锦 发表于 码农也得有格调 分类,标签:

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;


0 篇评论

发表我的评论