Як я можу програмно отримати префікс бази даних Joomla за допомогою php?


13

Я іноді отримую доступ до БД Joomla за допомогою зовнішніх скриптів. Проблема у мене полягає в тому, що якщо мені коли-небудь потрібно змінити префікс, мені також доведеться знову редагувати свої сценарії.

Чи є спосіб програмно визначити префікс бази даних Joomla за допомогою php? Якщо так, то як?

Відповіді:


16

Ви можете отримати префікс за допомогою наступного:

Для Joomla 2.5 використовуйте:

$app = JFactory::getApplication(); 
$prefix = $app->getCfg('dbprefix');

Для Joomla 3.2 використовуйте:

$app = JFactory::getApplication(); 
$prefix = $app->get('dbprefix');

Але документація Joomla рекомендує ніколи не змінювати префікс. Я знаю, що програмне забезпечення для резервного копіювання дозволяє вам змінити частину шляху шляхом відновлення, хоча не занижуйте потенційно залучену роботу.

Джерело: http://docs.joomla.org/How_to_determine_your_database_prefix


4
Документація Joomla не означає, що ви ніколи не повинні змінювати db_prefix. Це просто говорить, що не змінювати значення в глобальних налаштуваннях конфігурації, оскільки це очевидно порушить сайт - втративши з'єднання з базою даних. Зміна значення в com_config не вважається зміною префікса db, оскільки він не вносить жодних змін у саму базу даних. Префікс бази даних може бути змінений, припускаючи, що хтось знає, що робить.
FFrewin

4

Якщо ви отримуєте доступ до БД Joomla за допомогою зовнішніх скриптів, можливо, ви не хочете ініціалізувати всі файли Joomla лише для отримання префікса бази даних. Отже, ви можете зажадати файл config.php всередині вашого сценарію, інстанціювати клас JConfig і отримати dbprefix

require_once $path_to_joomla_folder . "/configuration.php";
$config = new JConfig;
$dbprefix = $config->dbprefix;
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.