how to connect to the database in openshift application

Sami picture Sami · Apr 10, 2013 · Viewed 20.1k times · Source

I did as following

MySQL 5.1 database added. Please make note of these credentials:

    Root User: xxxxxxx
    Root Password: xxxxxxx
    Database Name: php


 Connection URL: mysql://$OPENSHIFT_MYSQL_DB_HOST:$OPENSHIFT_MYSQL_DB_PORT/

You can manage your new MySQL database by also embedding phpmyadmin-3.4. The phpmyadmin username and password will be the same as the MySQL credentials above.

phpMyAdmin 3.4 added. Please make note of these MySQL credentials again:

    Root User: xxxxxxx
    Root Password: xxxxxxx

    URL: https://php-doers.rhcloud.com/phpmyadmin/

and i try to connect db using bellow PDO code .but it does not work

$dbh = new PDO('mysql:host=mysql://$OPENSHIFT_MYSQL_DB_HOST:$OPENSHIFT_MYSQL_DB_PORT/;dbname=php', "xxxxxx, "xxxxxx");

I don't know what is the connection URL mean ?

Answer

Sumana Mehta picture Sumana Mehta · Apr 10, 2013

There is an error in your connection string plus $OPENSHIFT_MYSQL_DB_* are env variables and need to be fetched via getenv php function.

So try the following:

define('DB_HOST', getenv('OPENSHIFT_MYSQL_DB_HOST'));
define('DB_PORT',getenv('OPENSHIFT_MYSQL_DB_PORT')); 
define('DB_USER',getenv('OPENSHIFT_MYSQL_DB_USERNAME'));
define('DB_PASS',getenv('OPENSHIFT_MYSQL_DB_PASSWORD'));
define('DB_NAME',getenv('OPENSHIFT_GEAR_NAME'));

$dsn = 'mysql:dbname='.DB_NAME.';host='.DB_HOST.';port='.DB_PORT;
$dbh = new PDO($dsn, DB_USER, DB_PASS);