Getting Started With PHP And RethinkDB

Now that we have set up a RethinkDB database, lets dive right into creating a PHP application. Luckily for us, "installing" the RethinkDB driver is as easy as requiring the relevant package. This can be done by executing the following line in your application's directory.

composer require danielmewes/php-rql 2.0.0  

Now that you have the "driver" here's an example application that you can copy, paste, and then execute from the CLI. Make sure to change the $dbHost variable.

<?php

require_once(__DIR__ . '/vendor/autoload.php');

# Specify the hostname or IP of your rethinkdb database
# this may just be "localhost"
$dbHost = "rethinkdb.programster.org";

 // Connect to localhost
$conn = r\connect($dbHost);

// Create a test table
r\db("test")->tableCreate("tablePhpTest")->run($conn);

// Insert a document
$document = array('someKey' => 'someValue');
$result = r\table("tablePhpTest")->insert($document)->run($conn);
echo "Insert: " . print_r($result, true) . PHP_EOL;

// How many documents are in the table?
$result = r\table("tablePhpTest")->count()->run($conn);
echo "Table Document Count: $result\n";

// List the someKey values of the documents in the table
// (using a mapping-function)
$mapFunc = function($x) {
    return $x('someKey');
};

$result = r\table("tablePhpTest")->map($mapFunc)->run($conn);

foreach ($result as $doc) 
{
    print "" . print_r($doc, true) . PHP_EOL;
}

// Delete the test table
r\db("test")->tableDrop("tablePhpTest")->run($conn);

The code above will:

  • Connect to the database.
  • Create a test table
  • Insert a document
  • Count how many documents are in the table.
  • Use the map functionality to list all the values in the table that have the key someKey.
  • Drop the test table

Conclusion

You now know how to connect your PHP application to your RethinkDB database. From here you should read the API documents and learn the ReQL query language.

References

Author

Programster

Stuart is a software developer with a passion for Linux and open source projects.

comments powered by Disqus
We are a participant in the Amazon Services LLC Associates Program, an affiliate advertising program designed to provide a means for us to earn fees by linking to Amazon.com and affiliated sites. More info.