web-dev-qa-db-ja.com

Joomla JFactory :: getDBO()-プレフィックスが間違っていますか?

私はJoomlaにかなり新しいです、そして私は立ち往生しています!

PHPスクリプト、JFactory :: getDBO();メソッドを使用して)からJoomla DBにアクセスしようとしています。SQLが元気そうです。

それから私はそれに気づきました

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

出力:

"Database prefix is : jos_". 

私のDBプレフィックスは「wvfd_」でなければなりません。

これは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');

Joomlaバックエンドをチェックインしましたが、プレフィックスが正しく設定されています。 configuration.phpを確認しましたが、そこにも正しく設定されていますか?

なぜ$ db = JFactory :: getDBO();なのですか?存在しないDBに接続しますか?

すべて/助けてくれてありがとう、ありがとう!

1
Ryan86

Dbプレフィックスを取得するには、Jconfigクラスのオブジェクト(構成ファイル)を作成する必要があります。 connectivity.phpファイルを作成して、ルートに配置するとします。そして、そのファイルのコードは次のようになります:

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は、dbの正しいプレフィックスを提供します。

1
Nehal