ik ben bezig om een pdo class te schrijven en loop tegen het volgende probleem :
Fatal error: Non-static method PDO::query() cannot be called statically in D:\Program Files\devel\xampp\htdocs\Mailchimp\demo\classes\db.class.php on line 189
de line waar het om gaat is de volgende
<?php
public static function execQuery($q){
if($q) {
$res = PDO::query($q);
}else{
$res = PDO::query($this->query);
}
return $res;
}
?>
het probleem doet zich voor op het moment dat ik een select query wil uit voeren via de getArray() functie
<?php
public static function getArray ($query, $keyCol = false, $valueCol= false) {
try {
$res = self::execQuery($query);
$arr = array();
// deze connect wordt nu nog gebruik wil gaan kijken of deze alleen kan worden uitgevoerd
// wanneer de class wordt aangeroepen
// standaard PDOconnect met als toevoeging een debug tool ($debug staat nu op true)
public function connect () {
try {
$this->db = new PDO("mysql:host=".$this->server."; dbname=".$this->database, $this->username, $this->password);
}
catch (PDOException $e) {
echo 'connection mysql : Error='.$e->getMessage();
die();
}
}
public function getArray ($query, $keyCol = false, $valueCol= false) {
try {
$res = db->execQuery($query);
$arr = array();
// deze functie moet uitgebreid getest worden
public function getSingleResult ($query, $fieldName = false) {
$res = self::execQuery($query);
$geg = $res->fetchColumn();
Dat zal je inderdaad ook nooit werkend krijgen, want de query method binnen de PDO class is niet static. Die kan je dus simpelweg niet als een static functie aanroepen. Einde oefening.