首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> 網頁程式設計 >> PHP 程式設計 >> PHP 相關知識

PHP 擴展 MongoDB 驅動安裝與 CRUD 操作完整實戰

     編輯:PHP 相關知識

環境準備與擴展安裝

1. 下載對應版本的 php_mongo.dll

根據 PHP 版本(5.3/5.4/5.5...)、架構(x86/x64)、線程安全性(TS/NTS)下載正確的 php_mongo.dll。

2. 安裝步驟

  1. 將 php_mongo.dll 複製到 PHP 擴展目錄:/php/ext/
  2. 編輯 php.ini,新增行:extension=php_mongo.dll
  3. 重啟 Web 服務(Apache/IIS/PHP-FPM)
  4. 執行 php -m | grep mongo 或查看 phpinfo() 驗證載入成功

MongoDB 基礎連接與資料庫操作

建立連接

// 標準連接格式:mongodb://[username:password@]host:port/database
$conn = new Mongo("mongodb://localhost:27017");

帶認證連接:

$conn = new Mongo("mongodb://admin:password@localhost:27017/admin");

選擇資料庫與集合

// 選擇資料庫(不存在會自動建立)
$db = $conn->selectDB('yyd');
// 或簡寫:$db = $conn->yyd;

// 選擇集合(相當於關係型資料庫的表)
$collection = $db->selectCollection('yyd_test');
// 或簡寫:$collection = $db->yyd_test;

CRUD 核心操作範例

Create - 新增文檔

$post = array(
    'name' => '張三',
    'sex' => '男',
    'age' => 25,
    'email' => 'zhangsan@example.com'
);

$result = $collection->insert($post);
var_dump($result); // 返回包含 _id 的陣列

Read - 查詢文檔

查詢所有:

$cursor = $collection->find(array());
foreach ($cursor as $doc) {
    echo "<pre>";
    echo "_id: {$doc['_id']}<br>";
    echo "name: {$doc['name']}<br>";
    echo "sex: {$doc['sex']}<br>";
    echo "age: {$doc['age']}<br>";
    echo "email: {$doc['email']}<br>";
    echo "</pre>";
}

條件查詢:

find(array("name" => "張三"));

進階查詢運算符:

find(array("age" => array('$gt' => 18, '$lt' => 60)));

// 正則匹配
$cursor = $collection->find(array("name" => new MongoRegex("/^張/")));

// 限制筆數與跳過
$cursor = $collection->find()->limit(10)->skip(20);

Update - 更新文檔

update(
    array("name" => "張三"),          // 查詢條件
    array('$set' => array(            // 更新操作
        "email" => "new_email@test.com",
        "age" => 26
    ))
);

// 更新所有匹配文檔(第三參數 multiple = true)
$collection->update(
    array("sex" => "男"),
    array('$inc' => array("age" => 1)), // 年齡 +1
    array("multiple" => true)
);

Delete - 刪除文檔

remove(array("name" => "張三"));

// 刪除第一筆匹配文檔(第二參數 justOne = true)
$collection->remove(array("name" => "張三"), array("justOne" => true));

常用管理操作

close();

// 刪除整個資料庫(謹慎使用!)
$conn->dropDB("yyd");

// 列出所有資料庫
$dbs = $conn->listDBs();
print_r($dbs);

重要提醒

⚠ 版本注意: 此篇使用的是舊版 mongo 擴展(PHP 5.x 時代)。現代 PHP 7+ 專案請使用 mongodb 擴展(composer require mongodb/mongodb),API 完全不同,請參考 官方文檔。

最佳實踐建議

  • 生產環境務必啟用認證與 SSL 加密連接
  • 使用索引優化查詢效能:$collection->ensureIndex(array("email" => 1))
  • 大量寫入時考慮使用 batchInsert() 提升效能
  • 妥善處理異常:try { ... } catch (MongoException $e) { ... }
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved