php操作mongodb封装类与用法实例

发布时间:2022-04-30 发布网站:脚本宝典
脚本宝典收集整理的这篇文章主要介绍了php操作mongodb封装类与用法实例脚本宝典觉得挺不错的,现在分享给大家,也给大家做个参考。

本文实例讲述了PHP操作mongodb封装类用法分享给大家供大家参考,具体如下:

近来学习了mongodb,刚好是做PHP开发的,随便写了PHP操作mongodb的封装类.

PHP;">
$db;
  }
  public static function getInstance(){
    if(!(self::$conn instanceof self)){
      self::$conn = new self();
    }
    //return self::$conn->mydb;
    return self::$conn;
  }
  PRivate function __clone(){
    trigger_error('Clone is not Allowed');
  }//禁止克隆
  //创建索引
  public function ensureindex($table,$index,$index_param=array())
  {
    $index_param['safe'] = 1;
    try {
      self::$mon->$table->ensureIndex($index,$index_param);
      return true;
    }
    catch (MongoCursorException $e)
    {
      self::$error = $e->getMessage();
      return false;
    }
  }
  //添加
  public function insert($table,$arr){
    try {
      self::$mon->$table->insert($arr,array('w'=>true));
      return true;
    }
    catch (MongoCursorException $e)
    {
      self::$error = $e->getMessage();
      return false;
    }
  }
  //更新
  public function update($table,$condITion,$new_arr,$options=array())
  {
    $options['w'] = 1;
    if (!isset($options['multiple']))
    {
      $options['multiple'] = 0;
    }
    try {
      self::$mon->$table->update($condition,$options);
      return true;
    }
    catch (MongoCursorException $e)
    {
      self::$error = $e->getMessage();
      return false;
    }
  }
  //删除
  public function remove($table,$options=array())
  {
    $options['w'] = 1;
    try {
      self::$mon->$table->remove($condition,$options);
      return true;
    }
    catch (MongoCursorException $e)
    {
      self::$error = $e->getMessage();
      return false;
    }
  }
  //查找
  public function find($table,$query_condition,$result_condition=array(),$fields=array())
  {
    $cursor = self::$mon->$table->find($query_condition,$fields);
    if (!empty($result_condition['start']))
    {
      $cursor->skip($result_condition['start']);
    }
    if (!empty($result_condition['limit']))
    {
      $cursor->limit($result_condition['limit']);
    }
    if (!empty($result_condition['sort']))
    {
      $cursor->sort($result_condition['sort']);
    }
    $result = array();
    try {
      while ($cursor->hasNext())
      {
        $result[] = $cursor->getNext();
      }
    }
    catch (MongoCursorTimeoutException $e)
    {
      self::$error = $e->getMessage();
      return false;
    }
    return $result;
  }
  //查找一条记录
  public function findOne($table,$fields=array())
  {
    return self::$mon->$table->findOne($condition,$fields);
  }
  //返回表的记录数
  public function count($table)
  {
    return self::$mon->$table->count();
  }
  //返回错误信息
  public function getError()
  {
    return self::$error;
  }
}

@H_419_5@

脚本宝典总结

以上是脚本宝典为你收集整理的php操作mongodb封装类与用法实例全部内容,希望文章能够帮你解决php操作mongodb封装类与用法实例所遇到的问题。

如果觉得脚本宝典网站内容还不错,欢迎将脚本宝典推荐好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。