Intereting Posts
Обнаруживать, если загрузка завершена Лучший способ получить имя хоста с php Неплохо ли включать в PHP множество файлов, например, для сеансов на основе файлов? PHP Regexp отрицательный lookahead Получение данных из фрагмента Javascript Почему я не получаю ошибку «заголовки уже отправлены»? Codeigniter: Я хотел бы создать URL-адрес пользователя для моих пользователей, когда они создадут имя пользователя Файл изображения Android, отправленный в файл загрузки файла php, – это тип приложения / октета-потока, а не изображение / jpeg? Ошибка SSL: как перенаправить https://www.domain.com на http://domain.com через .htaccess, чтобы избежать ошибки SSL как считать пространство в текстовом выражении в php обновить значение cookie в php Класс Slim не найден при установке тонких композиторов Преобразование perl-ассоциативного массива в массив PHP Настройка удаленной отладки IntelliJ Idea с помощью XDebug Phalanger и php-библиотека для .net

Подключить автономный скрипт к joomla DB с помощью фреймворка

Im в настоящее время пишет сценарий, который будет выполняться как cronjob для выполнения некоторых вычислений с использованием значений из базы данных joomla, потому что этот скрипт не будет доступен через joomla в качестве плагина и т. Д. Мне нужно делать с ним соединения DB.

То, что я пытаюсь сделать, это использовать структуру Joomla для выполнения всей работы (Connection, queries и т. Д.) Для обеспечения безопасности, а также для переносимости (вместо того, чтобы иметь еще один набор учетных данных для входа в этом скрипте, все они обрабатываются конфигурацией 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); ?> 

попробуй это

  <?php //init Joomla Framework define( '_JEXEC', 1 ); define( 'DS', DIRECTORY_SEPARATOR ); define( 'JPATH_BASE', realpath(dirname(__FILE__).DS.'..' )); require_once ( JPATH_BASE .DS.'includes'.DS.'defines.php' ); require_once ( JPATH_BASE .DS.'includes'.DS.'framework.php' ); $mainframe = JFactory::getApplication('site'); //DBQuery $database =& JFactory::getDBO(); $query = "SELECT * FROM #__chronoforms_RD_NonDangerousGoods WHERE cf_id = 4;"; $database->setQuery($query); $result = $database->query(); print_r($result); ?> 

Это работает для Joomla 2.5 (и 3.5)

  define( '_JEXEC', 1); // This will allow to access file outside of joomla. define( 'DS', DIRECTORY_SEPARATOR ); define( 'JPATH_BASE', realpath(dirname(__FILE__) .'/' ) ); require_once ( JPATH_BASE .DS.'includes'.DS.'defines.php' ); require_once ( JPATH_BASE .DS.'includes'.DS.'framework.php' ); $user =JFactory::getUser(); $session =& JFactory::getSession(); $database = JFactory::getDBO(); 

EDIT: Целью здесь является подключение к базе данных с использованием уже настроенной конфигурации Joomla и выполнение SQL-запросов с помощью DBO от Joomla. Таким образом, мы можем делать такие вещи, как вставка материала в таблицы без ввода учетных данных вручную в нашем скрипте.

вот код начальной загрузки joomla для joomla 3.x. Убедитесь, что ваш JOOMLA_PATH правильный, это должен быть путь к вашей установке Joomla

 //joomla bootstrap define( 'DS', DIRECTORY_SEPARATOR ); error_reporting(E_ALL); date_default_timezone_set('UTC'); define('_JEXEC', 1); define('JOOMLA_PATH',realpath(dirname(__FILE__).DS.'..'.DS.'..' )); $_SERVER['HTTP_HOST'] = 'localhost'; $_SERVER['REQUEST_METHOD'] = 'GET'; $_SERVER['REQUEST_URI'] = ''; if (file_exists(JOOMLA_PATH . '/defines.php')) { include_once JOOMLA_PATH . '/defines.php'; } if (!defined('_JDEFINES')) { define('JPATH_BASE', JOOMLA_PATH); require_once JPATH_BASE . '/includes/defines.php'; } require_once JPATH_BASE . '/includes/framework.php';