PHP and MongoDB Connection

Have a Database Problem? Speak with an Expert for Free
Get Started >>

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

alt text

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

Keep in the know!

Subscribe to our emails and we’ll let you know what’s going on at ObjectRocket. We hate spam and make it easy to unsubscribe.