Bagaimana saya bisa mendapatkan awalan basis data Joomla secara terprogram menggunakan php?

13

Terkadang saya mengakses Joomla DB melalui skrip eksternal. Masalah yang saya miliki adalah bahwa jika saya perlu mengubah awalan, saya juga perlu mengedit skrip saya lagi.

Apakah ada cara untuk secara terprogram menentukan awalan basis data Joomla menggunakan php? Jika ya, bagaimana?

Berusaha lebih keras
sumber

Jawaban:

16

Anda bisa mendapatkan awalan menggunakan yang berikut:

Untuk penggunaan Joomla 2.5:

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

Untuk Joomla 3.2 gunakan:

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

Tetapi dokumentasi Joomla merekomendasikan agar Anda tidak pernah memodifikasi awalan. Saya tahu beberapa perangkat lunak cadangan memungkinkan Anda melakukan perubahan sebagian melalui pemulihan, namun jangan meremehkan pekerjaan yang berpotensi terlibat.

Sumber: http://docs.joomla.org/How_to_determine_your_database_prefix

pembuat tim
sumber
4
Dokumentasi Joomla tidak berarti Anda tidak boleh memodifikasi db_prefix. Itu hanya mengatakan untuk tidak mengubah nilai, dalam pengaturan konfigurasi global, karena ini jelas akan merusak situs - dengan kehilangan koneksi ke database. Mengubah nilai dalam com_config tidak dianggap sebagai perubahan awalan db, karena tidak membuat perubahan apa pun pada database itu sendiri. Awalan basis data dapat diubah, dengan asumsi seseorang tahu apa yang dia lakukan.
FFrewin
4

Jika Anda mengakses Joomla DB melalui skrip eksternal, mungkin Anda tidak ingin menginisialisasi semua barang joomla hanya untuk mendapatkan awalan basis data. Jadi, Anda dapat memerlukan file configuration.php di dalam skrip Anda, instantiate kelas JConfig dan dapatkan dbprefix

require_once $path_to_joomla_folder . "/configuration.php";
$config = new JConfig;
$dbprefix = $config->dbprefix;
csbenjamin
sumber