通过学习了如何 使用 和部署MongoDB,尝试了一下如何将mongodb应用到php的程式中去。 1.预备工作 首先得准备好mongodb,并按照相关方法部署以及服务能正常运行中。 对于初学者,可以参考码农的教程,写得非常详细与实用。 参考方法与教程:http://www.cnblogs.
通过学习了如何使用和部署MongoDB,尝试了一下如何将mongodb应用到php的程式中去。
1.预备工作
首先得准备好mongodb,并按照相关方法部署以及服务能正常运行中。
对于初学者,可以参考‘码农’的教程,写得非常详细与实用。
参考方法与教程:http://www.cnblogs.com/huangxincheng/archive/2012/02/18/2356595.html
d:\mongodb\bin>net start MongoDB
php与apache环境的准备
要是比较的懒,可以去XAMPP下一个一体化安装包,包括php/apache/mysql等,并且环境已经是集成了的。只需要向htdocs/下面放php程序就可以访问。
XAMPP地址:http://www.apachefriends.org/zh_cn/xampp-windows.html (完整的安装与应用)
mongodb 的 drivers,就是一些动态链接库文件。
地址:https://s3.amazonaws.com/drivers.mongodb.org/php/index.html
2.mongodb与php的集成
(1).找到xampp中的ext目录:
比如我的是安装在D盘: D:\xampp\php\ext
(2).将下载的动态链接库文件copy到上面的目录D:\xampp\php\ext
php_mongo-1.4.5-5.5-vc11.dll copy to D:\xampp\php\ext
(3).修改php.ini的配置
位置:D:\xampp\php.ini
用编辑器打开此文件,找到 ; Windows Extensions
并在此块的最后添加一行配置(约:1033行的位置)
extension=php_mongo-1.4.5-5.5-vc11.dll
保存,并重启Apache服务。
3.调试与调用
在xampp/htdocs/下面写一个test.php ,
<span>php </span><span>phpinfo</span><span>(); </span>?>
在浏览器上运行此test.php,如果可以找到配置项,
MongoDB Support | enabled |
---|---|
Version | 1.4.5 |
SSL Support | enabled |
Streams Support | enabled |
Directive | Local Value | Master Value |
---|---|---|
mongo.allow_empty_keys | 0 | 0 |
mongo.chunk_size | 262144 | 262144 |
mongo.cmd | $ | $ |
mongo.default_host | localhost | localhost |
mongo.default_port | 27017 | 27017 |
mongo.is_master_interval | 15 | 15 |
mongo.long_as_object | 0 | 0 |
mongo.native_long | 0 | 0 |
mongo.ping_interval | 5 | 5 |
则证明,mongodb已经与php集成在一起了。
可以写个小程序测试一下:
<span>php </span><span>//</span><span>我的mongodb是安装在本机,并且<strong>使用</strong>的是2222端口。 //mongodb://$server-path or $ip-address:$port</span> <span>$client</span> = <span>new</span> MongoClient("mongodb://127.0.0.1:2222"<span>); </span><span>//</span><span>select test database and select person records.</span> <span>$collection</span> = <span>$client</span>->test-><span>person; </span><span>$result</span> = <span>$collection</span>-><span>findOne(); </span><span>var_dump</span>(<span>$result</span><span>); </span><span>//</span><span>NULL //从浏览器上看到的结果为:NULL</span> <span>$array</span> = <span>array</span><span>( </span>'name'=>'test', 'age'=>25, 'address'=><span>array</span><span>( </span>'province'=>'guangdong', 'city'=>'shenzhen', 'zone'=><span>array</span><span>( </span>'area'=>'nanshan', 'local'=>'xilili'<span>) ) ); </span><span>$ret</span> = <span>$collection</span>->insert(<span>$array</span><span>); </span><span>var_dump</span>(<span>$ret</span><span>); </span><span>//</span><span>结果为:</span> <span>array</span>(4<span>) { [</span>"n"]=><span> int(</span>0<span>) [</span>"connectionId"]=><span> int(</span>2<span>) [</span>"err"]=> <span>NULL</span><span> [</span>"ok"]=> <span>float</span>(1<span>) } </span><span>$res</span> = <span>$collection</span>-><span>findOne(); </span><span>var_dump</span>(<span>$res</span><span>); </span><span>//</span><span>结果为:</span> <span>array</span>(4<span>) { [</span>"_id"]=> <span>object</span>(MongoId)<span>#</span><span>7 (1) {</span> ["<span>$id</span>"]=> <span>string</span>(24) "52d605b0a6b9f6581000002b"<span> } [</span>"name"]=> <span>string</span>(4) "test"<span> [</span>"age"]=><span> int(</span>25<span>) [</span>"address"]=> <span>array</span>(3<span>) { [</span>"province"]=> <span>string</span>(9) "guangdong"<span> [</span>"city"]=> <span>string</span>(8) "shenzhen"<span> [</span>"zone"]=> <span>array</span>(2<span>) { [</span>"area"]=> <span>string</span>(7) "nanshan"<span> [</span>"local"]=> <span>string</span>(6) "xilili"<span> } } } </span><span>//</span><span>由mongo的客户端直接查看db也可以看到</span> d:\mongodb\bin>mongo 127.0.0.1:2222 ><span>use</span><span> test </span>>db.person.find()