Hi mensen,
ik ben me wat meer aan het verdiepen in de OO-logica van php5 maar ik kom er nog niet helemaal uit.
Ik ben nu bezig met een db-class (ik weet het, er zijn er al 1000-en... maar daar leer ik niks van :-) )
Nu krijg ik bij mijn eerste query gewoon netjes de juiste output maar bij de tweede query niet meer?
Het gaat volgens mij ergens niet helemaal lekker met de getInstance maar ik kom er helaas zelf niet uit.
Wie kan mij op weg helpen?
thanks!
ik ben me wat meer aan het verdiepen in de OO-logica van php5 maar ik kom er nog niet helemaal uit.
Ik ben nu bezig met een db-class (ik weet het, er zijn er al 1000-en... maar daar leer ik niks van :-) )
PHP:
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
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
| <?php class connection { var $mysqli; var $result; var $num_rows; var $affected_rows; var $insertID; public function __construct() { $this->mysqli = new mysqli(HOSTNAME, USERNAME, PASSWORD, DATABASE); if(mysqli_connect_errno()) { trigger_error('Fout bij verbinding: '.$this->mysqli->error); } } /* * Singleton functionality */ public static function getInstance() { /* static $instance; if (!isset($instance)) { $c = __CLASS__; $instance = new $c; } return $instance; */ static $instance; return $instance ? $instance : $instance = new self(); } public function query($query) { $this->result = $this->mysqli->query($query); if (!empty($this->mysqli->error)) { trigger_error('Fout in query: '.$this->mysqli->error); } else { // insert if (strpos($query, 'insert') !== false) { $this->insertID = $this->mysqli->insert_id; } // delete , update, replace elseif (strpos($query, 'delete') !== false || strpos($query, 'replace') !== false || strpos($query, 'update') !== false) { $this->affected_rows = $this->mysqli->affected_rows; } // else else { $this->num_rows = $this->result->num_rows; } if (!empty($this->insertID)) { return ($this->insertID); } } } public function getAllRecords($query, $result) { if (!$result && !$this->result) { $this->query($query); } if ($result == NULL) { $result = $this->result; } if ($result == NULL || $result->num_rows < 1 ) { return NULL; } else { $output = array(); while ( $row = $result->fetch_object() ) { $output[] = $row; } return $output; } } } ?> |
Nu krijg ik bij mijn eerste query gewoon netjes de juiste output maar bij de tweede query niet meer?
PHP:
1
| $result = connection::getInstance()->getAllRecords($query); |
Het gaat volgens mij ergens niet helemaal lekker met de getInstance maar ik kom er helaas zelf niet uit.
Wie kan mij op weg helpen?
thanks!