การติดตั้งบน PHP 7.3 จะต่างไปจาก PHP 5.6.3
ตรวจสอบด้วย phpinfo(); ไม่พบการติดตั้ง extension ชื่อ mongodb
เปิดแฟ้ม php.ini ไม่พบ extension อ้างถึง mongo
เพิ่ม extension=php_mongodb.dll
---
ตรวจสอบในการจับคู่ที่เหมาะสม พบว่า PHP 7.3 x64 กับ Mongodb 1.5.3 และเลือกแบบ x64
** https://pecl.php.net/package/mongodb/1.5.3/windows
** https://windows.php.net/downloads/pecl/releases/mongodb/1.5.3/php_mongodb-1.5.3-7.3-ts-vc15-x64.zip
unzip แล้ว copy php_mongodb.dll เข้า /php/ext
C:\php>php -m | findstr mongodb พบ mongodb ใน extension ของ php แล้ว
---
ติดตั้ง Mongodb รุ่น 4.2.8
Menu bar, Software, Community Server, A free an open document database
Available Download 4.2.8 , Windows , msi
https://fastdl.mongodb.org/win32/mongodb-win32-x86_64-2012plus-4.2.8-signed.msi
install แบบ run service as network service user
Server name = MongoDB
Data Directory = c:\program files\mongodb\server\4.2\data\
Log Directory = c:\program files\mongodb\server\4.2\log
สำรวจใน C:\Program Files\MongoDB\Server\4.2\bin
พบในแฟ้ม C:\Program Files\MongoDB\Server\4.2\bin\mongod.cfg
กำหนดค่า dbPath: C:\Program Files\MongoDB\Server\4.2\data
---
เปิดโปรแกรมผ่านไอคอนบน desktop : C:\Users\LAB\AppData\Local\MongoDBCompassCommunity\MongoDBCompassCommunity.exe
แล้วสั่ง connect ก็ไม่ได้ พบ connect ECONNREFUSED 127.0.0.1:27017
---
DOS> services.msc พบว่า MongoDB Server (MongoDB) ยังไม่ถูก start จึงต้อง start เอง
ตอนนี้ใช้ MongoDBCompassCommunity.exe เข้าจัดการข้อมูล แบบ Windows Mode ได้แล้ว
---
DOS> netstat -na | findstr 27017
TCP 127.0.0.1:27017 0.0.0.0:0 LISTENING
DOS> cd "C:\Program Files\MongoDB\Server\4.2\bin"
DOS> mongo
> db
test
> use test
switched to db test
> db.myCollection.insertOne({x:1});
{ "acknowledged" : true, "insertedId" : ObjectId("5f06e30e48bccb8a8dc5a3a6") }
> db.myCollection.find();
{ "_id" : ObjectId("5f06e30e48bccb8a8dc5a3a6"), "x" : 1 }
> exit
---
crud.php
เปิดโปรแกรม MongoDBCompassCommunity edit แล้ว copy connection ได้
// https://docs.mongodb.com/drivers/php
// https://www.tutorialspoint.com/mongodb/mongodb_php.htm
// https://stackoverflow.com/questions/40971613/class-mongodb-client-not-found-mongodb-extension-installed/41032582
<pre><?php
// https://www.tutorialspoint.com/mongodb/mongodb_php.htm
echo extension_loaded("mongodb") ? "loaded\n" : "not loaded\n";
$manager = new MongoDB\Driver\Manager("mongodb://localhost:27017");
// --- select
$query = new MongoDB\Driver\Query(array('x' => 1));
$cursor = $manager->executeQuery('test.myCollection', $query);
var_dump($cursor->toArray());
// Array ( [0] => stdClass Object ( [_id] => MongoDB\BSON\ObjectId Object ( [oid] => 5f06e30e48bccb8a8dc5a3a6 ) [x] => 1 ) )
// --- insert
$bulk = new MongoDB\Driver\BulkWrite;
$bulk->insert(['6301' => 'a']);
$bulk->insert(['6302' => 'b','sex' => 'm']);
$bulk->insert(['6303' => 'c','sex' => 'f','score'=>2000]);
$bulk->insert(['6304' => 'd','score'=>1500]);
$manager->executeBulkWrite('test.myCollection', $bulk);
// เปิดด้วย MongoDBCompassCommunity.exe แล้ว reload data จะพบข้อมูลไหลเข้ามาแล้ว
$query = new MongoDB\Driver\Query(array('6303' => 'c'));
$cursor = $manager->executeQuery('test.myCollection', $query);
var_dump($cursor->toArray());
// -- update
$bulk = new MongoDB\Driver\BulkWrite;
$bulk->update(
['6305' => 'b'],
['$set' => ['sex' => 'f']],
['multi' => false, 'upsert' => true]
);
// multi = false คือ พบตัวแรก ก็ทำตัวเดียว ไม่ทำหลายตัว Update only the first matching document
// upsert = true คือ ถ้าหาปรับปรุงไม่พบ ก็ insert เข้าไปเลย
$result = $manager->executeBulkWrite('test.myCollection', $bulk);
$query = new MongoDB\Driver\Query(array('6302' => 'b'));
$cursor = $manager->executeQuery('test.myCollection', $query);
var_dump($cursor->toArray());
// -- delete
$bulk = new MongoDB\Driver\BulkWrite;
$bulk->delete(['6305' => 'b'], ['limit' => 1]); // ลบที่พบตัวเดียว
$bulk->delete(['6304' => 'd'], ['limit' => 0]); // ไม่จำกัด ลบที่พบทุกตัว
$result = $manager->executeBulkWrite('test.myCollection', $bulk);
// https://www.php.net/manual/en/mongodb-driver-manager.executequery.php
?>
---
การ config MongoDB ใน php สำหรับ XAMPP
https://www.thegeekstuff.com/2015/10/php-mongodb-for-xampp/
การติดตั้ง Mongodb ใน Xampp
https://carlofontanos.com/installing-mongodb-in-xampp-windows/
การติดตั้ง Mongodb ใน Xampp
https://www.kangaroomusique.de/2018/09/23/how-to-install-mongodb-on-windows-to-run-with-xampp/
Download Mongodb
https://www.mongodb.com/download-center
ใช้ dll ด้วยการ unzip php_mongodb.dll ใน C:\xampp\php\ext
https://learnedia.com/install-mongodb-configure-php-xampp-windows/
https://pecl.php.net/package/mongodb
หนังสือ Mongodb
https://www.php.net/manual/en/book.mongo.php
อ่านเรื่อง Mongodb กับ php กัน
https://www.tutorialspoint.com/mongodb/mongodb_php.htm
|