classe de connexion pas trouvée
Bonjour,
Je pars d'un script faisant N fois la même connexion à la BDD. C'est pas bon car ça pose un gros risque d'erreur de saisie et de plus, on va avoir N connexions au lieu d'une seule.
J'avais en tête un script de connexion "statique" de ABCIWEB. Une petite recherche m'a donné ce lien : https://www.developpez.net/forums/d2...sse-connexion/. J'ai donc créé une classe :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34
| <?php
namespace marion;
// Pour enregistrer le $_POST en session et éviter de re saisir tous les champs en cas d'erreur de saisie
session_start();
// Classe de connexion
class C_PDO
{
private static $connexion;
private static function newC_PDO()
{
// VARIABLES A REMPLACER
$hostname = 'localhost';
$database = "users";
$username = 'root';
$password = 'root';
// Options de configuration PDO utilisées dans les exemples
$pdo_options[PDO::ATTR_DEFAULT_FETCH_MODE] = PDO::FETCH_ASSOC; // gestion des erreurs liées au fetch
$pdo_options[PDO::ATTR_ERRMODE] = PDO::ERRMODE_EXCEPTION; // gestion des exceptions
self::$connexion = new PDO('mysql:host='.$hostname.';dbname='.$database.';charset=utf8', $username, $password, $pdo_options);
}
public static function getC()
{
if(self::$connexion == NULL) {self::newC_PDO();}
return self::$connexion;
}
} |
Le script ne comporte pas de namespace. J'en ai donc rajouté un (ligne 2).
Ensuite, pour l'utiliser dans mon code, je place en début de fichier
Code:
1 2 3 4 5
| <?php
declare (strict_types=1);
use marion\C_PDO;
... |
puis plus bas pour l'utiliser dans une fonction :
Code:
1 2 3
| function addUserData(string $prenom, string $nom, string $adresse, string $cp, string $ville, string $telephone, string $email, string $password): bool {
$database = C_PDO::getC();
... |
Mais
Citation:
Fatal error: Uncaught Error: Class "marion\C_PDO" not found in C:\projets\arnaudmarionmvc\users.php on line 41
Quelle est la raison, SVP ?