web-dev-qa-db-fra.com

Joomla JFactory :: getDBO () - Le préfixe est faux?

Je suis assez nouveau pour Joomla et je suis coincé!

J'essaie d'accéder à la base de données Joomla à partir d'un script PHP, à l'aide de la méthode JFactory :: getDBO ();.) semble bien.

J'ai alors remarqué que

$db = JFactory::getDBO();
echo "Database prefix is : " . $db->getPrefix();

Les sorties:

"Database prefix is : jos_". 

Mon préfixe DB devrait être - "wvfd_".

C'est la partie du code qui initialise joomla:

    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');

J'ai vérifié dans le backend de Joomla et le préfixe est correctement défini. J'ai vérifié le fichier configuration.php, et est-il correctement défini également?

Pourquoi $ db = JFactory :: getDBO (); me connecter à une base de données qui n'existe pas?

Tous/Toute aide appréciée, merci!

1
Ryan86

Pour obtenir votre préfixe de base de données, vous devez créer un objet de classe Jconfig (fichier de configuration). Supposons que vous créez un fichier connectivity.php et que vous le placiez à la racine. Et le code dans ce fichier serait:

require_once ('configuration.php' );

    $var_cls = new JConfig();
    $connlink = mysql_connect($var_cls->Host, $var_cls->user, $var_cls->password) or die("Connection Failure to Database");
    mysql_select_db($var_cls->db, $connlink);

 return $db_prefix = $var_cls->dbprefix;

$ db_prefix vous donnera le préfixe correct de votre base de données.

1
Nehal