php - updateorcreate - wheredate laravel
Laravel PDOException SQLSTATE[HY000][1049] Base de datos desconocida ''forge'' (10)
- Primero tienes que crear tu base de datos relacionada.
- Entonces:
php artisan cache:clear
- Ahora ejecuta
php artisan migrate:install
Espero que su problema se resuelva.
Estoy usando Laravel para conectarme a la base de datos MySQL.
Tengo esta excepción:
PDOException
SQLSTATE[HY000] [1049] Unknown database ''forge''
y este es mi config.database.php
''mysql'' => array(
''driver'' => ''mysql'',
''host'' => ''localhost'',
''database'' => ''laravel'',
''username'' => ''Anastasie'',
''password'' => ''A@Laurent'',
''charset'' => ''utf8'',
''collation'' => ''utf8_unicode_ci'',
''prefix'' => '''',
),
¿Por qué el error se refiere a la base de datos de PDO
? ¿Y por qué el nombre de la base de datos forge
? Ya lo he cambiado.
¿Debo hacer algo para decirle a Laravel que estoy usando la base de datos MySQL?
Actualización 1
Encontré esta línea protected $table = ''users'';
en mi archivo user.php y lo cambié a protected $table = ''user'';
porque la tabla en mi base de datos es user
no users
Actualización 2
Escribí esto en mi ruta.
Route::resource(''users'', ''UsersController'');
y agregué UsersController.php
en mi carpeta de controladores
y dentro de UsersController.php
tengo esto:
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''));
}
y llamo a este url http://localhost:8082/laravel/public/users/
Estoy usando Windows 7 con Laravel 4.2
Gracias por adelantado
Asegúrese de no tener un archivo .evn duplicado en la carpeta laravel. Si existe, elimínelo. Solo guarde el archivo .evn.
Debe borrar la memoria caché de esa manera (debido a que su configuración anterior está en su archivo de memoria caché):
php artisan cache:clear
El error pdo viene del hecho de que Laravel usa el controlador pdo para conectarse a mysql
Encontré este problema varias veces, ten en cuenta que estoy ejecutando laravel a través de Vagrant. Así que aquí están las soluciones que funcionan para mí:
- Inténtalo de nuevo varias veces (actualizar página)
- Recargar vagrant (recargar vagrant)
Puede intentar volver a cargar su servidor en lugar de errante (es decir, MAMP)
Nota: una vez que tuve un espacio antes del nombre de mi base de datos como mydatabase
lugar de mydatabase
, phpmyadmin no mostrará el espacio, pero si lo ejecuta desde la interfaz de línea de comandos de mysql, como mysql -u the_user -p
continuación, show databases
, podrá ver el espacio.
OK, encontré solución.
En el archivo database.php, por defecto, viene la parte "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,
],
todo lo que necesitas hacer es cambiar los valores:
''database'' => env(''DB_DATABASE'', ''forge''),
''username'' => env(''DB_USERNAME'', ''forge''),
por el nombre de su base de datos (debe crear uno si no tiene ninguno) y por ese nombre de usuario de la base de datos
Me gusta esto
''database'' => env(''DB_DATABASE'', ''MyDatabase''),
''username'' => env(''DB_USERNAME'', ''MyUsername''),
Parece que tiene un archivo de configuración específico del entorno en algún lugar que anula la configuración de base de datos predeterminada. Posiblemente app / config / local / database.php .
Tuve el mismo problema y esto es lo que resolví el error.
ANTES DE:
$conn= mysqli_connect($server_name, $mysql_Username, $mysql_Password, $db_name);
DESPUÉS:
Acaba de añadir ""
;
$conn= "mysqli_connect($server_name, $mysql_Username, $mysql_Password, $db_name)";
Usando phpMyAdmin (o lo que prefieras), acabo de crear una base de datos llamada "forge" y volví a ejecutar el comando de migración de php artisan y todo funcionó.
a veces es porque DB_CONNECTION = mysql y desea usar la base de datos sqlite. La solución a eso es hacer DB_CONNECTION = sqlite. Espero eso ayude
DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=C:/xampp/htdocs/jbtibl/database/database.sqlite
DB_USERNAME=root
DB_PASSWORD=