Fatal error en kom er niet achter wat het is
Ik ben met een project bezig en ik krijg de volgende error en ik kom er niet achter waar het nu fout gaat. Een frisse blik wil soms nog wel eens helpen dus misschien dat iemand er even naar kan kijken,
Dit is de error:
Fatal error: Call to a member function execute() on a non-object in /var/www/html/velgenwereld.nl/includes/class/advertenties.class.php on line 34
Dit is mijn Class:
Code (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
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
<?php
class advertenties extends connect
{
private $advertentieslijst;
public function getAdvertenties($database)
{
$sql = "SELECT * FROM ".$database."_advertenties WHERE advertentie_online <= '".date('Y-m-d')."' AND advertentie_offline >= '". date('Y-m-d')."' ORDER BY advertentie_ID";
try
{
$stmt = $this->db->prepare($sql);
print_r ($sql);
$stmt->execute();
$this->advertentieslijst = $stmt->fetchAll(PDO::FETCH_OBJ);
$stmt->closeCursor();
return $this->advertentieslijst;
}
catch (Exception $e)
{
die ($e->getMessage());
}
}
/**
* Maak een database object en opslaan van informatie
*
* @param object $dbo
* @return void
*/
public function __construct($dbo)
{
parent::__construct($dbo);
}
}
?>
class advertenties extends connect
{
private $advertentieslijst;
public function getAdvertenties($database)
{
$sql = "SELECT * FROM ".$database."_advertenties WHERE advertentie_online <= '".date('Y-m-d')."' AND advertentie_offline >= '". date('Y-m-d')."' ORDER BY advertentie_ID";
try
{
$stmt = $this->db->prepare($sql);
print_r ($sql);
$stmt->execute();
$this->advertentieslijst = $stmt->fetchAll(PDO::FETCH_OBJ);
$stmt->closeCursor();
return $this->advertentieslijst;
}
catch (Exception $e)
{
die ($e->getMessage());
}
}
/**
* Maak een database object en opslaan van informatie
*
* @param object $dbo
* @return void
*/
public function __construct($dbo)
{
parent::__construct($dbo);
}
}
?>
En dit is de andere code die het uitleest:
Code (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
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
<?php
include_once "../includes/inc/init.inc.php";
$website = "vwe";
?>
<?php
if(isset($_POST['aanbnieuws']))
{
?>
<form action="" method="POST">
<table class="nieuwstable">
<?php
if($_POST['aanbnieuws'] == "tabaanbieding")
{
?>
<?php
$advertenties = new advertenties($dbo);
$advertentie = $advertenties->getAdvertenties($website);
foreach($advertentie as $advertenties)
{
?>
<tr>
<th colspan="2">
<a href="<?php echo $advertenties->advertentie_img; ?>" onclick="openAdvImageInModal(this); return false;"><img src="<?php echo $advertenties->advertentie_img; ?>" alt="<?php echo $advertenties->advertentie_img; ?>" width="250" alt="advertentie"/></a></th>
</tr>
<?php
}
?>
include_once "../includes/inc/init.inc.php";
$website = "vwe";
?>
<?php
if(isset($_POST['aanbnieuws']))
{
?>
<form action="" method="POST">
<table class="nieuwstable">
<?php
if($_POST['aanbnieuws'] == "tabaanbieding")
{
?>
<?php
$advertenties = new advertenties($dbo);
$advertentie = $advertenties->getAdvertenties($website);
foreach($advertentie as $advertenties)
{
?>
<tr>
<th colspan="2">
<a href="<?php echo $advertenties->advertentie_img; ?>" onclick="openAdvImageInModal(this); return false;"><img src="<?php echo $advertenties->advertentie_img; ?>" alt="<?php echo $advertenties->advertentie_img; ?>" width="250" alt="advertentie"/></a></th>
</tr>
<?php
}
?>
Ergens gaat het fout maar ik zie door de bomen het bos niet meer. Iemand suggesties?
Alvast bedankt.
Gewijzigd op 25/05/2012 11:43:11 door Joep van Dongen
Wat staat er op die lijn 34?
$stmt->execute();
Dus net wat er staat hij kan niets uitvoeren want de () zijn leeg. a non-object.
Ik denk zelf dat de Class goed in elkaar zit en dat ik ergens anders iets over het hoofd zie
Is $stmt wel het object wat je verwacht? Aangezien de error zegt dat hij probeert een functie uit te voeren die hij niet kent, of dat hij het vanuit een niet object probeert.
$advertenties = new advertenties($dbo);
Waar komt $dbo van daan?
Trouwens, die print_r ($sql);
Geeft dat je het resultaat dat je verwacht?
(update)
Wacht even ... ik snap niet wat je probeert te doen.
advertenties extends connect
Dit is vreemd. Ik zie niet in waarom een advertentie een extend van een connect zou kunnen zijn.
Toon trouwens eens je class connect.
Gewijzigd op 25/05/2012 13:38:27 door Kris Peeters
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
<?php
public function getAdvertenties($database)
{
$sql = "SELECT * FROM ".$database."_advertenties WHERE advertentie_online <= '".date('Y-m-d')."' AND advertentie_offline >= '". date('Y-m-d')."' ORDER BY advertentie_ID";
try
{
$stmt= $this->db->query($sql);
$this->advertentieslijst = $stmt->fetchAll(PDO::FETCH_OBJ);
$stmt->closeCursor();
return $this->advertentieslijst;
}
catch (Exception $e)
{
die ($e->getMessage());
}
}
public function getAdvertenties($database)
{
$sql = "SELECT * FROM ".$database."_advertenties WHERE advertentie_online <= '".date('Y-m-d')."' AND advertentie_offline >= '". date('Y-m-d')."' ORDER BY advertentie_ID";
try
{
$stmt= $this->db->query($sql);
$this->advertentieslijst = $stmt->fetchAll(PDO::FETCH_OBJ);
$stmt->closeCursor();
return $this->advertentieslijst;
}
catch (Exception $e)
{
die ($e->getMessage());
}
}