В настоящее время я пишу скрипт, который будет запускаться как cronjob для выполнения некоторых вычислений с использованием значений из базы данных joomla, потому что к этому скрипту нельзя получить доступ через joomla как плагин и т. Д. Мне нужно с ним подключиться к БД .
То, что я пытаюсь сделать, - это использовать инфраструктуру Joomla для выполнения всей работы (подключение, запросы и т. Д.) В целях безопасности, а также в целях переносимости (вместо того, чтобы иметь другой набор учетных данных для входа в систему в этом сценарии, все это обрабатывается Joomla конфигурации)
Я сделал все, что мог, но когда я запускаю скрипт, я получаю следующую ошибку:
Database Error: Unable to connect to the database:Could not connect to MySQL
Я распечатал переменную и убедился, что сведения о соединении для mysql верны (какие они есть).
Мой текущий код:
<?php
//init Joomla Framework
define( '_JEXEC', 1 );
define( 'JPATH_BASE', realpath(dirname(__FILE__).'/..' ));
define( 'DS', DIRECTORY_SEPARATOR );
require_once ( JPATH_BASE .DS.'includes'.DS.'defines.php' );
require_once ( JPATH_BASE .DS.'includes'.DS.'framework.php' );
require_once( JPATH_CONFIGURATION .DS.'configuration.php' );
require_once ( JPATH_BASE .DS.'includes'.DS.'database.php' );
require_once ( JPATH_LIBRARIES .DS.'joomla'.DS.'import.php' );
//DB Connection
$Config = new JConfig();
$option['driver'] = $Config->dbtype; // Database driver name
$option['host'] = $Config->host; // Database host name
$option['user'] = $Config->user; // User for database authentication
$option['password'] = $Config->password; // Password for database authentication
$option['database'] = $Config->db; // Database name
$option['prefix'] = $Config->dbprefix; // Database prefix (may be empty)
$db = & JDatabase::getInstance($option);
//DBQuery
$database =& JFactory::getDBO();
$query = "SELECT * FROM #__chronoforms_RD_NonDangerousGoods WHERE cf_id = 4;";
$database->setQuery($query);
$result = $database->query();
print_r($result);
?>