Bonjour,
Je m'essaie à la POO en php.
J'ai créé une classe qui me permet de gérer les commandes
Ce code provoque l'affichage de l'erreur
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24 class commandes { private $dbh; function __construct() { try { $dbh = new PDO('mysql:host=xxx.xx.fr;dbname=yy', 'lllooo', 'huhu', array(PDO::ATTR_PERSISTENT => true)); } catch (PDOException $e) { print "Error!: " . $e->getMessage() . "<br/>"; die(); } } function cmdes_non_exp() { $stmt = $dbh->prepare("select id_cmde from commandes where id_etat = ?"); $cpt = 0; if ($stmt->execute(array(1))) { while ($row = $stmt->fetch()) { print "Commande No $row[0]\n"; } } }
Pourquoi ? Si j'insère le code du contructeur dans la méthode, la requête sql fonctionne... Il me semble que le database handler devrait être créé par le constructeur puis accessible depuis les différentes méthodes non ? Sinon, il faudrait ouvrir la cnx dans chaque méthode ? Il doit bien y avoir un moyen de rationnaliser tout cela mais lequel ? J'ai beau essayer, je ne trouve pas la solution.Fatal error: Call to a member function prepare() on a non-objec
Merci pour votre aide.
RG
Partager