#yii
#yii
Вопрос:
Я просматриваю руководство Yii по созданию блога и следую инструкциям. Для базы данных я только что импортировал тестовую базу данных. Все было прекрасно.
Когда я установил соединение с базой данных в main.php отображается следующая ошибка:
CDbConnection не удалось открыть подключение к БД: SQLSTATE[42000] [1049] Неизвестная база данных ‘myblog’
Массив подключений к базе данных в main.php является:
//'db'=>array(
// 'connectionString' => 'sqlite:'.dirname(__FILE__).'/../data/testdrive.db',
//),
// uncomment the following to use a MySQL database
'db'=>array(
'connectionString' => 'mysql:host=localhost;dbname=myblog',
'emulatePrepare' => true,
'username' => 'root',
'password' => 'root',
'charset' => 'utf8',
'tablePrefix' => 'ia_',
),
Что я делаю не так?
Комментарии:
1. Можете ли вы подключиться к базе данных с помощью инструмента командной строки MySQL?
2. есть ли в вашем mysql база данных с именем «myblog»? И является ли ваш пароль пользователя mysql root на самом деле «root»?? Пожалуйста, проверьте это еще раз. Системы Linux / Unix также чувствительны к регистру имен баз данных…
Ответ №1:
Вы следите за этим руководством по Yii Blog?
http://www.yiiframework.com/doc/blog/1.1/en/prototype.database
Вы используете базу данных MySQL или просто SQLite? Имя базы данных — blog, а не мой блог на этой странице.
Совет: Если вы хотите использовать MySQL вместо SQLite для хранения данных, вы можете создать базу данных MySQL с именем blog, используя инструкции SQL в /wwwroot/yii/demos/blog/protected/data/schema.mysql.sql. Затем измените конфигурацию приложения следующим образом,
return array(
......
'components'=>array(
......
'db'=>array(
'connectionString' => 'mysql:host=localhost;dbname=blog',
'emulatePrepare' => true,
'username' => 'root',
'password' => '',
'charset' => 'utf8',
'tablePrefix' => 'tbl_',
),
),
......
);
Ответ №2:
обратите внимание на следующую ошибку, пока существует ваша база данных! SQLSTATE[42000] [1049] Тест неизвестной базы данных:host=localhost
проблема в коде php
Неправильный код
$pdo = новый PDO(‘mysql:host=localhost:dbname=shenakht’, «мехди», «1»);
Правильный код
$pdo = новый PDO(‘mysql:host=localhost;dbname=shenakht’, «мехди», «1»);
Разница между: и ;
если ваш код верен, перейдите к http://localhost/phpmyadmin и создайте базу данных!