Home / Blogs / eZ Blog / Using php to pass database values to a bash shell

Using php to pass database values to a bash shell

Here's code that I've used in a bunch of places - especially for automated syncing scripts:

You have to run this from the ez root directory.

#!/bin/bash
getinidbinfo ()
{
dbinfo=`php -r "require 'autoload.php';
\\$script = eZScript::instance( array( 'debug-message' => '', 'use-session' => true, 'use-modules' => true, 'use-extensions' => true ) );
\\$script->startup();
\\$script->setUseSiteAccess( '${1}' );
\\$script->initialize();
\\$ini = eZINI::instance();
\\$database=\\$ini->variable( 'DatabaseSettings', 'Database' );
\\$user=\\$ini->variable( 'DatabaseSettings', 'User' );
\\$password=\\$ini->variable( 'DatabaseSettings', 'Password' );
\\$script->shutdown();
echo \\$database.':'.\\$user.':'.\\$password;"`
remote_db=${remote_db:-`echo $dbinfo|cut -f1 -d":"`}
remote_db_user=${remote_db_user:-`echo $dbinfo|cut -f2 -d":"`}
remote_db_passwd=${remote_db_passwd:-`echo $dbinfo|cut -f3 -d":"`}
}
getinidbinfo $*
echo $remote_db $remote_db_user $remote_db_passwd