Php kullanarak Joomla veritabanı önek programlı olarak nasıl alabilirim?


13

Bazen Joomla DB'ye harici komut dosyaları aracılığıyla erişiyorum. Sahip olduğum sorun, öneki değiştirmem gerekirse komut dosyalarımı da tekrar düzenlemem gerekecek.

Php kullanarak Joomla veritabanı önek programlı olarak belirlemek için bir yolu var mı? Evet ise, nasıl?

Yanıtlar:


16

Öneki aşağıdakileri kullanarak alabilirsiniz:

Joomla 2.5 kullanımı için:

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

Joomla 3.2 kullanımı için:

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

Ancak Joomla belgeleri, öneki asla değiştirmemenizi önerir. Bazı yedekleme yazılımlarının, geri yükleme yoluyla kısmen değişiklik yapmanıza izin verdiğini biliyorum, ancak potansiyel olarak ilgili işi küçümsemeyin.

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


4
Joomla Documentation, db_prefix'i asla değiştirmemeniz gerektiği anlamına gelmez. Sadece genel konfigürasyon ayarlarında değeri değiştirmemesini söyler, çünkü bu açıkça siteyi kıracaktır - veritabanına bağlantıyı kaybederek. Com_config içindeki değerin değiştirilmesi, veritabanının kendisinde herhangi bir değişiklik yapmadığından, db öneki değişikliği olarak değerlendirilmez. Veritabanı öneki, birinin ne yaptığını bildiği varsayılarak değiştirilebilir.
FFrewin

4

Joomla DB'ye harici komut dosyaları üzerinden erişiyorsanız, belki de tüm joomla dosyalarını yalnızca veritabanı önekini almak için başlatmak istemezsiniz. Bu nedenle, komut dosyanızın içinde configuration.php dosyasını isteyebilir, JConfig sınıfını başlatabilir ve dbprefix'i alabilirsiniz

require_once $path_to_joomla_folder . "/configuration.php";
$config = new JConfig;
$dbprefix = $config->dbprefix;
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.