PHP+ MongoDB

环境:

uname -v
#1 SMP Debian 3.2.57-3+deb7u2

php -v PHP 5.4.30-1~dotdeb.1 (cli) (built: Jun 29 2014 23:18:55) Copyright (c) 1997-2014 The PHP Group Zend Engine v2.4.0, Copyright (c) 1998-2014 Zend Technologies

安装MongoDB驱动:

1、安装PECL(PHP 扩展模块)

sudo apt-get install php5-dev php5-cli php-pear

2、通过pecl安装驱动

sudo pecl install mongo

安装过程中有个提示,默认回车即可。

编辑php.ini文件:

sudo vi /etc/php5/fpm/php.ini

在文件最后添加一行:

extension=mongo.so

最后重启php服务:

sudo service php5-fpm restart 

测试

新建一个php文件:test.php,内容如下:

<?php
$user = array(
    'first_name' => 'MongoDB',
    'last_name' => 'Fan',
    'tags' => array('developer','user')
);
// Configuration
$dbhost = 'localhost';
$dbname = 'test';

// Connect to test database
$m = new Mongo("mongodb://$dbhost");
$db = $m->$dbname;

// Get the users collection
$c_users = $db->users;

// Insert this new document into the users collection
$c_users->save($user);
?>

这是在mongodb的test数据库中的users表中插入一条记录。按mongodb的说法是,在数据库test的集合users中插入一个文档。

在浏览器中打开这个test.php页面,数据就插入到数据库中了。回到mongodb中看看是否有数据:

mongo test
MongoDB shell version: 2.6.3
connecting to: test
> db.users.findOne()
{
    "_id" : ObjectId("53b79360b2c88865388b4567"),
    "first_name" : "MongoDB",
    "last_name" : "Fan",
    "tags" : [
        "developer",
        "user"
    ]
}
> 

是的,可以看到php中的代码已经生效了。

在php中怎么读取mongodb的数据呢?

新建一个test2.php文件,内容如下:

<?php
// Configuration
$dbhost = 'localhost';
$dbname = 'test';

// Connect to test database
$m = new Mongo("mongodb://$dbhost");
$db = $m->$dbname;

// Get the users collection
$c_users = $db->users;

// Find the user with first_name 'MongoDB' and last_name 'Fan'
$user = array(
    'first_name' => 'MongoDB',
    'last_name' => 'Fan'
);

$user = $c_users->findOne($user);
var_dump($user);
?>

在浏览器中打开test2.php就可以看到结果了。

posted @ 2014-07-05 15:28  ibg  阅读(324)  评论(0编辑  收藏  举报