Ik heb een connectie class die prima werkt, nu wil een beetje OOP gaan leren en een menu script bouwen.
Dit is mijn connectie script (connection.php):
<?PHP
session_start();
class Connection {
// Configure Database Vars
private $host = 'localhost';
private $username = 'user';
private $password = 'pass!';
private $db_name = 'dbname';
public $db;
function __construct() {
// Create connection
$db = new mysqli($this->host, $this->username, $this->password, $this->db_name);
// Check connection
if ($db->connect_errno > 0) {
die('Unable to connect to the database: '.$db->connect_error);
}
$this->db = $db;
}
public function query($query) {
$db = $this->db;
$this->db->query('SET NAMES utf8');
if (!$result = $this->db->query($query)) {
die('There was an error running the query ['.$db->error.']');
} else {
return $result;
}
}
public function multi_query($query) {
$db = $this->db;
if (!$result = $this->db->multi_query($query)) {
die('There was an error running the multi query ['.$db->error.']');
} else {
return $result;
}
}
public function real_escape_string($value) {
return $this->db->real_escape_string($value);
}
public function inserted_id() {
return $this->db->insert_id;
}
}
$conn = new Connection;
?>
En dit is mijn poging tot een menu script (menuClass.php):
<?php
require_once('includes/connection.php');
class Menu extends Connection
{
public function selectCats()
{
$cats = "SELECT * FROM snm_categories WHERE published = '1'";
$catscon = $this->db->query($cats);
return $cats;
}
}
?>
Dit geeft geen errors, alleen ik hoorde van iemand dat het slecht is om de connectie class te extenden omdat een menu iets heel anders is dan een connectie.
Mijn vraag is dus, hoe kan ik de functie query() gebruiken binnen mijn menu class?
Ik heb het volgende al geprobeerd:
<?php
require_once('includes/connection.php');
$menucon = new Connection;
class Menu
{
public function selectCats()
{
$cats = "SELECT * FROM snm_categories WHERE published = '1'";
$catscon = $menucon->db->query($cats);
return $cats;
}
}
?>
Maar dit geeft een fatal error: Call to a member function query() on null
Wat doe ik fout?
4.172 views