Я использую Laravel для подключения к базе данных MySQL.
Я получил это исключение:
PDOException SQLSTATE[HY000] [1049] Unknown database 'forge'
и это мой config.database.php
'mysql' => array( 'driver' => 'mysql', 'host' => 'localhost', 'database' => 'laravel', 'username' => 'Anastasie', 'password' => 'A@Laurent', 'charset' => 'utf8', 'collation' => 'utf8_unicode_ci', 'prefix' => '', ),
почему ошибка относится к базе данных PDO
? и почему имя базы данных forge
? Я уже изменил его.
Должен ли я что-либо сказать Laravel, что я использую базу данных MySQL?
Я нашел эту строку protected $table = 'users';
в моем файле user.php, и я изменил его на protected $table = 'user';
потому что в моей базе данных находится user
не являющийся users
Я написал это в своем маршруте
Route::resource('users', 'UsersController');
и я добавил UsersController.php
в папку моих контроллеров
и внутри UsersController.php
меня есть следующее:
class UsersController extends BaseController { /** * Display a listing of the resource. * * @return Response */ public function index() { $users = User::all(); return View::make('users.index', compact('users')); }
и я называю этот URL http://localhost:8082/laravel/public/users/
Я использую Windows 7 с Laravel 4.2
заранее спасибо
Вам нужно очистить кеш (например, ваша старая конфигурация находится в вашем кеш-файле):
php artisan cache:clear
Ошибка pdo исходит из того, что Laravel использует драйвер pdo для подключения к mysql
php artisan cache:clear
php artisan migrate:install
Надеюсь, ваша проблема будет решена.
Похоже, что у вас есть файл конфигурации, специфичный для конкретной среды, который переопределяет настройки базы данных по умолчанию. Возможно, app / config / local / database.php .
Примечание. Когда-то случилось, что у меня случайно было место до моего имени базы данных, такого как mydatabase
а не mydatabase
, phpmyadmin не отображает пробел, но если вы запустите его из интерфейса командной строки mysql, такого как mysql -u the_user -p
затем show databases
, вы сможете увидеть пробел.
Используя phpMyAdmin (или что вы предпочитаете), я только что создал базу данных под названием «forge» и перезапустил команду migpan php artisan, и все это сработало.
Несколько раз сталкивался с этой проблемой, отмечаю, что я использую laravel через Vagrant. Итак, вот исправления, которые работают на меня:
Вы можете попробовать перезагрузить свой сервер вместо бродяг (т. Е. MAMP)
Хорошо, нашел решение.
В файле database.php, по умолчанию, это часть «mysql»:
'mysql' => [ 'driver' => 'mysql', 'host' => env('DB_HOST', '127.0.0.1'), 'port' => env('DB_PORT', '3306'), 'database' => env('DB_DATABASE', 'forge'), 'username' => env('DB_USERNAME', 'forge'), 'password' => env('DB_PASSWORD', ''), 'charset' => 'utf8mb4', 'collation' => 'utf8mb4_unicode_ci', 'prefix' => '', 'strict' => true, 'engine' => null, ],
все, что вам нужно сделать, это изменить значения:
'database' => env('DB_DATABASE', 'forge'), 'username' => env('DB_USERNAME', 'forge'),
по имени вашей базы данных (вы должны создать ее, если у вас ее нет) и по этому имени базы данных
как это
'database' => env('DB_DATABASE', 'MyDatabase'), 'username' => env('DB_USERNAME', 'MyUsername'),
У меня была такая же проблема, и я решил эту ошибку.
ДО:
$conn= mysqli_connect($server_name, $mysql_Username, $mysql_Password, $db_name);
ПОСЛЕ:
Просто добавил ""
;
$conn= "mysqli_connect($server_name, $mysql_Username, $mysql_Password, $db_name)";