Wie kann ich das Joomla-Datenbankpräfix mit PHP programmgesteuert abrufen?

13

Ich greife manchmal über externe Skripte auf die Joomla DB zu. Das Problem, das ich habe, ist, dass ich meine Skripte erneut bearbeiten muss, wenn ich das Präfix ändern muss.

Gibt es eine Möglichkeit, das Joomla-Datenbankpräfix mit PHP programmgesteuert zu ermitteln? Wenn ja wie

TryHarder
quelle

Antworten:

16

Sie können das Präfix folgendermaßen abrufen:

Für Joomla 2.5 verwenden Sie:

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

Für Joomla 3.2 verwenden Sie:

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

Aber Joomla-Dokumentation wird jedoch empfohlen, das Präfix niemals zu ändern. Ich weiß, dass einige Backup-Software es Ihnen ermöglicht, eine Änderung auf halbem Weg durch eine Wiederherstellung vorzunehmen, obwohl Sie die möglicherweise damit verbundene Arbeit nicht unterschätzen.

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

tim.baker
quelle
4
Joomla-Dokumentation bedeutet nicht, dass Sie db_prefix niemals ändern dürfen. Es heißt nur, dass der Wert in den globalen Konfigurationseinstellungen nicht geändert werden soll, da dies die Site offensichtlich beschädigen wird, indem die Verbindung zur Datenbank unterbrochen wird. Das Ändern des Werts in com_config wird nicht als DB-Präfixänderung angesehen, da keine Änderungen an der Datenbank selbst vorgenommen werden. Das Datenbankpräfix kann geändert werden, vorausgesetzt, jemand weiß, was er tut.
FFrewin
4

Wenn Sie über externe Skripte auf die Joomla-Datenbank zugreifen, möchten Sie möglicherweise nicht alle Joomla-Inhalte initialisieren, um nur das Datenbankpräfix zu erhalten. Sie können also die Datei configuration.php in Ihrem Skript benötigen, die JConfig-Klasse instanziieren und das dbprefix erhalten

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