PHP and MongoDB Connection
Introduction
If you’re using PHP to build applications, you may want to interact with a MongoDB database in your code. Fortunately, it’s easy to connect to a MongoDB database from a PHP script with just a bit of setup and configuration. In this article, we’ll show you how to set up a PHP and MongoDB connection so that you can access a MongoDB database in your apps.
Prerequisites
Before attempting to set up a connection between PHP and MongoDB, a few essential prerequisites need to be in place:
You’ll need to make sure that either XAMPP or WAMP is already installed and configured on your system.
MongoDB must be installed and configured on your machine.
You’ll need to have internet access for downloading some required files.
Install MongoDB PHP Driver
In this section, we’ll start the process of setting up a PHP and MongoDB connection by installing the MongoDB PHP driver on our system. To do this, we simply download the needed ‘DLL’ (Dynamic Link Library) file that can be found at this link: MongoDB PHP.
We’ll put this downloaded file in one of our PHP installation directories, which we’ll discuss in the next section.
Configure PHP and MongoDB in Windows
Next, let’s review how to configure PHP in a way that will allow a connection to MongoDB in a Windows environment.
- First, we open the php.ini file found in the following XAMPP directory:
C:\xampp\php
Next, we add the following text in the extensions section of the file:
extension=php_mongodb.dll
Finally, we extract the ‘DLL’ file that we downloaded earlier into the following directory:
C:\xampp\php\ext
Creating a MongoDB Sample Database
Our next step will be to create a sample dataset that we can use in this tutorial.
First, we’ll connect to a database named productdb.
1 | use productdb |
Then we can perform an insertMany() operation to add some dummy documents that we can use for demo purposes. The operation will create the products
collection and add these documents to it at the same time:
1 2 3 4 5 6 7 8 | db.products.insertMany( [ { item: "keyboard", qty: 20 }, { item: "mouse", qty: 40 }, { item: "power supply" , qty: 30 }, { item: "cpu" , qty: 30 }, { item: "video card" , qty: 20 }, { item: "memory module" , qty: 30 } ] ); |
This operation will return a response that looks like the following:
1 2 3 4 5 6 7 8 9 10 11 | { "acknowledged" : true, "insertedIds" : [ ObjectId("5e48b471389f0fd56b8b0554"), ObjectId("5e48b471389f0fd56b8b0555"), ObjectId("5e48b471389f0fd56b8b0556"), ObjectId("5e48b471389f0fd56b8b0557"), ObjectId("5e48b471389f0fd56b8b0558"), ObjectId("5e48b471389f0fd56b8b0559") ] } |
We can verify that the products
collection was successfully created using this command: db.products.find().pretty();
We should get results that look like this:
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 | { "_id" : ObjectId("5e48b471389f0fd56b8b0554"), "item" : "keyboard", "qty" : 20 } { "_id" : ObjectId("5e48b471389f0fd56b8b0555"), "item" : "mouse", "qty" : 40 } { "_id" : ObjectId("5e48b471389f0fd56b8b0556"), "item" : "power supply", "qty" : 30 } { "_id" : ObjectId("5e48b471389f0fd56b8b0557"), "item" : "cpu", "qty" : 30 } { "_id" : ObjectId("5e48b471389f0fd56b8b0558"), "item" : "video card", "qty" : 20 } { "_id" : ObjectId("5e48b471389f0fd56b8b0559"), "item" : "memory module", "qty" : 30 } |
Connecting to MongoDB Database
In this section, we’ll create a simple PHP script that will connect to our productdb
database.
Let’s start by creating a new directory named ‘phpmongo’ in the htdocs
directory. We can then create a new PHP file called ‘test.php’ and add the following code to it:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 | <?php $mng = new MongoDB\Driver\Manager("mongodb://localhost:27017"); $qry = new MongoDB\Driver\Query([]); $rows = $mng->executeQuery("productdb.products", $qry); foreach ($rows as $row) { foreach ($rows as $row) { echo nl2br("$row->item : $row->qty\n"); } } ?> |
The code shown above will read data from the ‘products’ collection that exists within the ‘productdb’ database. Let’s take a closer look at what’s happening in this script:
We use
$qry = new MongoDB\Driver\Query([]);
to create a MongoDB query object with an empty array. This tells MongoDB to read all possible data within the target collection.We then execute the query against the specified collection name using the following line of code:
$rows = $mng->executeQuery("productdb.products", $qry);
Finally, we iterate over all matched documents and print it out on the page.
The result should look like the following:
Conclusion
When you’re writing PHP code and need to interact with a database, MongoDB is a natural choice. Fortunately, it only takes a few simple steps to create a connection between PHP and MongoDB. In this article, we walked you through the complete process of creating a PHP and MongoDB connection, and we provided a code example that includes a typical MongoDB query. With these instructions and code examples to guide you, you’ll be able to write PHP code that can query your own MongoDB database.
Pilot the ObjectRocket Platform Free!
Try Fully-Managed CockroachDB, Elasticsearch, MongoDB, PostgreSQL (Beta) or Redis.
Get Started