环境:Windows10 php5.6 mongo1.6.9 thinkphp3.2.3
mongo版本:![]()
php版本:
------------------------------------------------------------------------------------------------------------分割线------------------------------------------------------------------------------------------------------------
1.首先安装windows mongo(到官网下载安装包msi)
2.安装php_mongo驱动(关于驱动问题具体百度,mongo是一个数据库,用户需要一个中介连接他,就是php_mongo);下载对应版本php_mongo,修改php.ini增加extension=php_mongo.dll
3.使用php原生语句测试连接mongo数据库。具体操作代码
$connect = new MongoClient();//因为已经抛弃mongo()连接方式。使用mongoclient连接数据
print_r($m->listDBs()); //打印数据库
print_r($m->listDBs()); //打印数据库
4.使用thinkphp连接数据库。
4.1首先建立一个共用model,commonmodel代码如下:
<?php
namespace Common\Model;
use Think\Model\MongoModel;
class CommonModel extends MongoModel{//注意继承的是mongomodel而不是model
protected $tableName = 'test';
//指定要操作的集合test
protected $dbName = 'test';
//指定操作test数据库
}
namespace Common\Model;
use Think\Model\MongoModel;
class CommonModel extends MongoModel{//注意继承的是mongomodel而不是model
protected $tableName = 'test';
//指定要操作的集合test
protected $dbName = 'test';
//指定操作test数据库
}
4.2然后在模块下继承公共Model。
例如我在Admin模块下继承公共Model,代码如下:
<?php
namespace Admin\Model;
use Common\Model\CommonModel;
class OnlineuserModel extends CommonModel{
}
namespace Admin\Model;
use Common\Model\CommonModel;
class OnlineuserModel extends CommonModel{
}
4.3在控制器的方法里实例化所需model,代码如下:
$user = D('onlineuser');//与在mysql实例化model没有区别
4.4测试代码,插入数据,代码如下:
$data=array(
"name"=>"张三",
"addr"=>"广州",
"sex"=>"女",
"info"=>array(
"age"=>10,
"phone"=>"12345",
)
);
$map['name'] = "张三";
$result = $user->where($map)->select();//查询刚刚插入的数据
dump($result);
"name"=>"张三",
"addr"=>"广州",
"sex"=>"女",
"info"=>array(
"age"=>10,
"phone"=>"12345",
)
);
$map['name'] = "张三";
$result = $user->where($map)->select();//查询刚刚插入的数据
dump($result);