Bonjour à tous.
Pour les besoin d'un projet de formation, je dois recréer une sorte d'Orm (type Doctrine, Propel, etc) mais simplifié bien sur avec SQLite.
Je rencontre une erreur et je ne trouve pas le problème.
J'ai 2 class mères et 1 class fille. Une première me permettant de me connecter à la base et une seconde dans laquelle je dois récupérer la structure d'une table.
Dans ma première class de connexion (qui fonctionne), j'ai ce code :
Code php : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15 <?php class MyOrm_Db { public $connect; public function __construct($db) { $connect = new SQLiteDatabase($db); } public function __desctruct($base) { sqlite_close($base); } } ?>
Dans un second fichier, j'ai ce code :
Code php : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12 <?php class MyOrm_Table { public function __construct($base, $name) { $pragma = $base->connect->arrayQuery("PRAGMA table_info('$name')", SQLITE_ASSOC); echo "<pre>"; print_r($pragma); echo "</pre>"; } } ?>
Et enfin, ma class fille :
Code php : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11 <?php class User extends MyOrm_Table { protected $_name = "user"; public function __construct($db) { parent::__construct($db, $this->_name); } } ?>
Je fais appel a mets class de cette façon :
Code php : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 //Connection $db = new MyOrm_Db("test.db"); $user = new User($db); //Deconnection unset($db);
Lorsque j'execute ce bout de code, je me retrouve avec cette erreur :
Le fichier myorm_table.php contient les class MyOrm_Table et User. Je sais c'est pas terrible de mettre 2 class dans un même fichier, mais c'est uniquement le temp de faire mets test.
Code : Sélectionner tout - Visualiser dans une fenêtre à part Fatal error: Call to a member function arrayQuery() on a non-object in C:\wamp\www\my_orm\myorm_table.php on line 5
Quelqu'un peut il m'expliquer pourquoi j'ai cette erreur ?
Merci d'avance,
Doki.
Partager