Home > php教程 > php手册 > body text

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

WBOY
Release: 2016-06-07 11:38:12
Original
1619 people have browsed it

使用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元

source:php.cn
Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
Popular Recommendations
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template