Bonjour,
Je suis la formation Mise en pratique de la POO en PHP.
J'ai un soucis avec phinx. Lorsque j'essaye d'utiliser phinx, il n'arrive pas à se connecter à la base de données.
Voici ce que me retourne ma console :
[PDOException]
SQLSTATE[HY000] [1045] Access denied for user 'root'@'localhost' (using pas
sword: YES)
Alors que le site arrive tout à fait à se connecter. Ce qui est fou c'est qu'ils ont les même informations pour se connecter à la base de données.
Voici le code dans mon config.php
return [
'env' => 'dev',
'database.host' => 'localhost',
'database.username' => 'root',
'database.password' => 'root',
'database.name' => 'monsupersite',
\PDO::class => function (\Psr\Container\ContainerInterface $c) {
return $pdo = new PDO(
'mysql:host=' . $c->get("database.host") . ';dbname=' . $c->get('database.name'),
$c->get('database.username'),
$c->get('database.password'),
[
PDO::ATTR_DEFAULT_FETCH_MODE => PDO::FETCH_OBJ,
PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION,
]
);
},
];
Avez une idée pour résoudre ce problème ?
Merci !
Merci pour votre réponse.
Malheuresement je n'ai pas trouvé de solutions dans votre lien.
J'ai trouvé la solution à mon problème en ajoutant l'unix_socket.
Phinx fonctionnait donc très bien.
<?php
require 'web/index.php';
$migrations = [];
$seeds = [];
foreach ($app->getModules() as $module) {
if ($module::MIGRATIONS) {
$migrations[] = $module::MIGRATIONS;
}
if ($module::SEEDS) {
$seeds[] = $module::SEEDS;
}
}
return [
'paths' => [
'migrations' => $migrations,
'seeds' => $seeds
],
'environments' => [
'default_database' => 'development',
'development' => [
'adapter' => 'mysql',
'host' => $app->getContainer()->get('database.host'),
'name' => $app->getContainer()->get('database.name'),
'user' => $app->getContainer()->get('database.username'),
'pass' => $app->getContainer()->get('database.password'),
'unix_socket' => '/Applications/MAMP/tmp/mysql/mysql.sock',
'charset' => 'utf8',
]
]
];
Plutot il y a un probleme de mot e passe verifie ton mon de passe au serveur de base de donnee
connexion dans le pichier phinx php si vous etes pas habitué a travailler avec yml et en passant son prebleme seside du cote mysql
Ce n'est pas un problème de mot de passe vu que le site se connecte bien à la BDD. Voici le contenu de phinx. J'ai bien testé, les valeurs sont corrects et sont bien chargés. Il n'arrive tout simplement pas à se connecter à ma BDD alors que le site oui (même valeurs de configuration).
Merci pour vos réponses.
<?php
require 'web/index.php';
$migrations = [];
$seeds = [];
foreach ($app->getModules() as $module) {
if ($module::MIGRATIONS) {
$migrations[] = $module::MIGRATIONS;
}
if ($module::SEEDS) {
$seeds[] = $module::SEEDS;
}
}
return [
'paths' => [
'migrations' => $migrations,
'seeds' => $seeds
],
'environments' => [
'default_database' => 'development',
'development' => [
'adapter' => 'mysql',
'host' => $app->getContainer()->get('database.host'),
'name' => $app->getContainer()->get('database.name'),
'user' => $app->getContainer()->get('database.username'),
'pass' => $app->getContainer()->get('database.password'),
'charset' => 'utf8',
]
]
];
Super ! et tu as procedé comment un petit partage fera l'affaire ça aiderai aussi !!!