Ik heb voor een website altijd gebruik gemaakt van de standaard mysql functies, en ben sinds kort overgegaan naar mysqli. Nu is echter het probleem dat ik in een specifiek geval niet de query functie in mijn eigen class aan kan roepen...
De opbouw is als volgt:
Index.php -> Included base.php en home.php
base.php:
home.php-> include header.php
header.php
Ik krijg echter de volgende error:
PHP Fatal error: Call to a member function query() on a non-object in /home5/***/header.php on line 113
Dit zou er mee te maken moeten hebben dat de query functie niet aan te roepen is, maar deze functie werkt wel degerlijk en dit zou het, naar mijn mening, gewoon moeten doen...
De opbouw is als volgt:
Index.php -> Included base.php en home.php
base.php:
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
| class engine{ public function __construct(){ $mysql_host = $mysql_database = $mysql_user = " $mysql_password = " $this->mysqli = new mysqli($mysql_host, $mysql_user, $mysql_password, $mysql_database); if ($this->mysqli->connect_errno) { $this->error("Connection to database failed."); } } public function query($query){ if($content = $this->mysqli->query($query)){ if($content->num_rows > 0){ $data = array(); while($row = $content->fetch_assoc()){ $data[] = $row; } return $data; }else{ return false; } }else{ $this->error($query.md5($this->mysqli->error)); } } } $main = new engine(); |
home.php-> include header.php
header.php
PHP:
1
2
3
4
5
6
7
| if($ads = $main->query("SELECT * FROM ad WHERE side = 'l' ORDER BY orde ASC")){ foreach($ads as $ad){ echo "<li>"; echo "<a target=\"_blank\" href=\"{$ad['url']}\"><img src=\"{$ad['image']}\" /></a>"; echo "</li>"; } } |
Ik krijg echter de volgende error:
PHP Fatal error: Call to a member function query() on a non-object in /home5/***/header.php on line 113
Dit zou er mee te maken moeten hebben dat de query functie niet aan te roepen is, maar deze functie werkt wel degerlijk en dit zou het, naar mijn mening, gewoon moeten doen...