Я пытаюсь использовать несколько соединений с базой данных в структуре yii2. Под моим файлом db.php внутри папки конфигурации, у меня есть этот кусок кода:Подключение нескольких баз данных по yii2
return [
'class' => 'yii\db\Connection',
'components' => [
'db1' => [
'class' => 'yii\db\Connection',
'dsn' => 'mysql:host=localhost;dbname=new',
'username' => 'root',
'password' => 'password',
'charset' => 'utf8',
],
'db2' => [
'class' => 'yii\db\Connection',
'dsn' => 'mysql:host=localhost;dbname=old',
'username' => 'root',
'password' => 'password',
'charset' => 'utf8',
],
],
];
В моем test.php в папке модели, у меня есть это ниже ...
namespace app\models;
use Yii;
use yii\base\Model;
use yii\db\Query;
class GetAds extends Model
{
public function ads()
{
$test = Yii::$app->db1->createCommand((new \yii\db\Query)->select('*')->from('members'))->queryAll();
}
когда Я пытаюсь получить доступ, я получаю сообщение об ошибке «Получение неизвестного свойства: yii \ web \ Application :: db1»
Как решить эту проблему? Я фактически следовал этому руководству Multiple database connections and Yii 2.0
Где я сделал неправильно?
Хуже всего, я установил использовать только одну базу данных ... и на моей модели, я использую этот код ..
namespace app\models;
use Yii;
use yii\base\Model;
use yii\db\ActiveRecord;
use yii\db\Query;
class GetAds extends ActiveRecord
{
public static function tableName()
{
return 'ads_page';
}
public static function ads()
{
$count=(new \yii\db\Query)->from('ads_page')->count('*');
}
}
И я получаю эту ошибку
Database Exception – yii\db\Exception
could not find driver
↵
Caused by: PDOException
could not find driver
Почему так yi2 использует? Я следовать всем здесь http://www.yiiframework.com/doc-2.0/guide-db-dao.html
пожалуйста, помогите
Кажется мне, что это не имеет ничего общего с Yii вообще ... «не удалось найти драйвер» больше похоже на ошибку «PDO». Вы уверены, что все соответствующие модули php установлены? «PDO» недостаточно, ему также нужно «mysqlnd» iirc – Blizz
@Blizz, спасибо за подсказку, я включил pdo_mysql в настройках PHP с помощью WAMP .... Это решает проблему PDO. – nodeffect
Вы объединяете конфигурацию db с другими конфигурационными массивами? – Tony