欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  php教程

MongoDB与php的配合使用 【windows版】

程序员文章站 2022-06-12 16:18:54
...

通过学习了如何 使用 和部署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 ,

php

phpinfo();

?>

在浏览器上运行此test.php,如果可以找到配置项,

mongo

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集成在一起了。

可以写个小程序测试一下:

php

//我的mongodb是安装在本机,并且使用的是2222端口。
//mongodb://$server-path or $ip-address:$port
$client = new MongoClient("mongodb://127.0.0.1:2222");

//select test database and select person records.
$collection = $client->test->person;

$result = $collection->findOne();
var_dump($result);


//NULL


//从浏览器上看到的结果为:NULL


$array = array(
            'name'=>'test',
            'age'=>25,
            'address'=>array(
                        'province'=>'guangdong',
                        'city'=>'shenzhen',
                        'zone'=>array(
                            'area'=>'nanshan',
                            'local'=>'xilili')
                        )
        );
$ret = $collection->insert($array);
var_dump($ret);

//结果为:
array(4) {
  ["n"]=>
  int(0)
  ["connectionId"]=>
  int(2)
  ["err"]=>
  NULL
  ["ok"]=>
  float(1)
}


$res = $collection->findOne();
var_dump($res);
//结果为:
array(4) {
  ["_id"]=>
  object(MongoId)#7 (1) {
    ["$id"]=>
    string(24) "52d605b0a6b9f6581000002b"
  }
  ["name"]=>
  string(4) "test"
  ["age"]=>
  int(25)
  ["address"]=>
  array(3) {
    ["province"]=>
    string(9) "guangdong"
    ["city"]=>
    string(8) "shenzhen"
    ["zone"]=>
    array(2) {
      ["area"]=>
      string(7) "nanshan"
      ["local"]=>
      string(6) "xilili"
    }
  }
}

//由mongo的客户端直接查看db也可以看到
d:\mongodb\bin>mongo 127.0.0.1:2222

>use test
>db.person.find()