> php教程 > php手册 > TP框架中mysql和mongo同时使用解决方案

TP框架中mysql和mongo同时使用解决方案

WBOY
풀어 주다: 2016-06-07 11:38:12
원래의
1657명이 탐색했습니다.

使用Tp框架已经有5个版本了,关于Mysql和mongodb的同时使用,tp框架一直是蜻蜓点水,说的很不到位,相比Yii框架来说,mongodb的拓展很弱。我就结合TP官方提供的mongodb类进行了一个拓展和修改,可以在tp中同时使用。
1 在Tp公共的配置文件Conf目录下建立一个别名文件alias.php(和config.php同一个目录下)
我的别名文件配置如下:
//别名加载文件import("Util")方式可以加载文件和类库
return array(
'Util' =>COMMON_PATH.'librarys/Util.php',//加载common/librarys下的文件
'Hgmongodb' =>COMMON_PATH.'extensions/mongodb/Hgmongodb.php',//加载mongo
);
2 在config.php配置文件下的目录中建立一个params.php然后配置
//网站其他拓展参数
return array(
'Mongodb'=>array(
'hostname'=>'127.0.0.1',
'hostport'=>'27017',
'database'=>'bjdaheige',
'username'=>'',
'password'=>'',
'coll_prefix'=>'dv_',
'params'=>array('connect'=>true),
'db_deploy_type' => 1,//是否注销连接
),
);
3 在config.php配置文件中,加载导入的自定义配置文件
//拓展其他参数,比如Mongodb
'LOAD_EXT_CONFIG'=>'params',
这里的Mongodb就可以用C('Mongodb')方式读取
4 在具体的控制器的动作方法中,我们可以这么使用:
//测试mongodb和import别名导入文件
import("Hgmongodb");
$mongo = new Hgmongodb(C('Mongodb'));
$mongo->connect();//连接mongodb,这是一个触发式的连接
$user = $mongo->findOne(array('table'=>'we_user','limit'=>1,'where'=>array('we_account_id'=>100102034)),array('subscribe_time','nickname'));
$user2 = $mongo->findOne(array('table'=>'we_user','limit'=>1,'where'=>array('remark_name'=>array('like','布布'))),array('subscribe_time','nickname'));
var_dump($user);
var_dump($user2);die;
运行结果:
array (size=3)
'_id' =>
object(MongoId)[11]
public '$id' => string '545c5e1fa724e9043f000008' (length=24)
'nickname' => string '任勇铨' (length=9)
'subscribe_time' => int 1396253215

array (size=3)
'_id' =>
object(MongoId)[13]
public '$id' => string '545c5e21a724e9043f00000a' (length=24)
'nickname' => string '布布' (length=6)
'subscribe_time' => int 1395583303

附件 Hgmongodb.zip ( 6.11 KB 下载:32 次 )

AD:真正免费,域名+虚机+企业邮箱=0元

원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 추천
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿