作者热门文章
- android - RelativeLayout 背景可绘制重叠内容
- android - 如何链接 cpufeatures lib 以获取 native android 库?
- java - OnItemClickListener 不起作用,但 OnLongItemClickListener 在自定义 ListView 中起作用
- java - Android 文件转字符串
我有以下代码连接到 MongoDB:
try {
$m = new Mongo('mongodb://'.$MONGO['servers'][$i]['mongo_host'].':'.$MONGO['servers'][$i]['mongo_port']);
} catch (MongoConnectionException $e) {
die('Failed to connect to MongoDB '.$e->getMessage());
}
// select a database
$db = $m->selectDB($MONGO["servers"][$i]["mongo_db"]);
然后我创建了一个 PHP 类,我想在其中检索/更新 Mongo 中的数据。我不知道如何访问之前创建的与 Mongo 的连接。
class Shop {
var $id;
public function __construct($id) {
$this->id = $id;
$this->info = $this->returnShopInfo($id);
$this->is_live = $this->info['is_live'];
}
//returns shop information from the database
public function returnShopInfo () {
$where = array('_id' => $this->id);
return $db->shops->findOne($where);
}
}
代码是这样的:
$shop = new Shop($id);
print_r ($shop->info());
最佳答案
您可以只使用具有相同连接字符串的“new Mongo()”,它将使用相同的连接,但我建议您在 Mongo 连接类周围包装一个单例以检索相同的连接对象。大概是这样的:
<?php
class myprojMongoSingleton
{
static $db = NULL;
static function getMongoCon()
{
if (self::$db === null)
{
try {
$m = new Mongo('mongodb://'.$MONGO['servers'][$i]['mongo_host'].':'.$MONGO['servers'][$i]['mongo_port']);
} catch (MongoConnectionException $e) {
die('Failed to connect to MongoDB '.$e->getMessage());
}
self::$db = $m;
}
return self::$db;
}
}
然后在您的应用程序的任何其他地方调用它:
$m = myprojMongoSingleton::getMongoCon();
关于php - 如何从另一个 PHP 类连接到 MongoDB?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9990799/
我是一名优秀的程序员,十分优秀!