ホームページ > バックエンド開発 > PHPチュートリアル > PHP_PHP チュートリアルで実装された Mongodb 操作クラス

PHP_PHP チュートリアルで実装された Mongodb 操作クラス

WBOY
リリース: 2016-07-13 09:52:50
オリジナル
998 人が閲覧しました

phpによって実装されたmongodb操作クラス

mongoDBに接続するphpと言えば、http://us.php.net/manual/en/book.mongo.phpにあるphpの公式マニュアルを紹介する必要があります。 , 私がよく使っているMONGODBの操作クラスを共有したいと思います。詳細なデータベース操作はすべて友達に参照してもらうことができます。

mongo_db.php

?

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

44

45

46

47

48

49

50

51

52

53

54

55

56

57

58

59

60

61

62

63

64

65

66

67

68

69

70

71

72

73

74

75

76

77

78

79

80

81

82

83

84

85

86

87

88

89

90

91

92

93

94

95

96

97

98

99

100

101

102

103

104

105

106

107

108

109

110

111

112

113

114

115

116

117

118

119

120

121

122

123

124

125

126

127

128

129

130

131

132

133

134

135

136

137

138

139

140

141

142

143

144

145

146

147

148

149

150

151

152

153

154

155

156

157

158

159

160

161

162

163

164

165

166

167

168

169

170

171

172

173

174

175

176

177

178

179

180

181

182

183

184

185

186

187

188

189

190

191

192

193

194

195

196

197

198

199

200

201

202

203

204

205

206

207

208

209

210

211

212

213

214

215

216

217

218

219

220

221

222

223

224

225

226

227

228

229

230

231

232

233

234

235

/**

* PhpStorm によって作成されました。

* ユーザー: ヤンユロン

* 日付: 2015/5/26

* 時間: 13:45

*/

クラスMongo_db

{

プライベート静的 $instanceof = NULL;

公開 $mongo;

private $host = 'localhost';

プライベート $ポート = '27017';

プライベート $db;

パブリック $dbname;

プライベート $table = NULL;

/**

* クラスを初期化してmongoのインスタンスオブジェクトを取得します

*/

パブリック関数 __construct($host = NULL, $port = NULL, $dbname = NULL, $table = NULL)

{

if (NULL === $dbname) {

$this->throwError('セットを空にすることはできません!');

}

// ホストとポートを判断します

if (NULL !== $host) {

$this->host = $host;

}

if (NULL !== $port) {

$this->port = $port;

}

$this->table = $table;

$this->mongo = new MongoClient($this->host . ':' . $this->port);

if ($this->getVersion() >= '0.9.0') {

$this->dbname = $this->mongo->selectDB($dbname);

$this->db = $this->dbname->selectCollection($table);

} 他 {

$this->db = $this->mongo->$dbname->$table;

}

}

パブリック関数 getVersion()

{

MongoClient::VERSION を返す;

}

/**

* シングルトンパターン

* @return Mongo|null

*/

//パブリック静的関数 getInstance($host=null, $port=null, $dbname=null, $table=null){

//

// if(!(self::$instanceofinstanceofself)){

// self::$instanceof = 新しい self($host, $port, $dbname, $table);

//}

//

// return self::$instanceof;

//}

/**

* データを挿入します

* @param 配列 $doc

*/

パブリック関数 insert($doc = array())

{

if (空($doc)) {

$this->throwError('插入のデータを空にすることはできません!');

}

//保存データ情報

試してください{

if (!$this->db->insert($doc)) {

新しい MongoException('插受信データ失败');

をスローします

}

} catch (MongoException $e) {

$this->throwError($e->getMessage());

}

}

/**

* 複数のデータを挿入します

* @param 配列 $doc

*/

パブリック関数 insertMulti($doc = array())

{

if (空($doc)) {

$this->throwError('插入のデータを空にすることはできません!');

}

//插入受信情報

foreach ($doc as $key => $val) {

//判断$val是不是数组

if (is_array($val)) {

$this->insert($val);

}

}

}

/**

* レコードを探す

* @return array|null

*/

パブリック関数 findOne($where = NULL)

{

if (NULL === $where) {

試してください{

if ($result = $this->db->findOne()) {

$result を返す;

} 他 {

throw new MongoException('データが見つかりませんでした');

}

} catch (MongoException $e) {

$this->throwError($e->getMessage());

}

} 他 {

試してください{

if ($result = $this->db->findOne($where)) {

$result を返す;

} 他 {

throw new MongoException('データが見つかりませんでした');

}

} catch (MongoException $e) {

$this->throwError($e->getMessage());

}

}

}

/**

* todoは条件付きで後で実行します

* すべてのドキュメントを検索

* @returnMongoCursor

*/

パブリック関数 find($where = NULL)

{

if (NULL === $where) {

試してください{

if ($result = $this->db->find()) {

} 他 {

throw new MongoException('データが見つかりませんでした');

}

} catch (MongoException $e) {

$this->throwError($e->getMessage());

}

} 他 {

試してください{

if ($result = $this->db->find($where)) {

} 他 {

throw new MongoException('データが見つかりませんでした');

}

} catch (MongoException $e) {

$this->throwError($e->getMessage());

}

}

$arr = 配列();

foreach ($result as $id => $val) {

$arr[] = $val;

}

$arr を返す;

}

/**

* レコード数を取得します

* @return int

*/

パブリック関数 getCount()

{

試してください{

if ($count = $this->db->count()) {

$count を返す;

} 他 {

throw new MongoException('合計数が見つかりません');

}

} catch (MongoException $e) {

$this->throwError($e->getMessage());

}

}

/**

* すべてのデータベースを取得します

* @配列を返す

*/

パブリック関数 getDbs()

{

return $this->mongo->listDBs();

}

/**

* データベースを削除します

* @param null $dbname

* @returnmix

*/

パブリック関数dropDb($dbname = NULL)

{

if (NULL !== $dbname) {

$retult = $this->mongo->dropDB($dbname);

if ($retult['ok']) {

TRUEを返す;

} 他 {

FALSEを返す;

}

}

$this->throwError('削除するデータベースの名前を入力してください');

}

/**

* データベースリンクを強制的に閉じます

*/

パブリック関数 closeDb()

{

$this->mongo->close(TRUE);

}

/**

* エラーメッセージを出力します

* @param $errorInfo エラー内容

*/

パブリック関数 throwError($errorInfo='')

{

echo "

エラー: $errorInfo

";

死ぬ();

}

}

以上がこの記事の全内容ですが、皆さんに気に入っていただければ幸いです。

www.bkjia.comtru​​ehttp://www.bkjia.com/PHPjc/1007637.html技術記事 PHP で実装された mongodb 操作クラス PHP を mongoDB に接続する場合、まず PHP の公式マニュアルを紹介する必要があります。Web サイトは http://us.php.net/manual/en/book.mongo.php です。 A...
とシェアさせていただきます。
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート