du kunne også vælge at bruge classens constructor, og i denne initalicerer med din connection.
enten som en connerction der kommer ude fra classen.
(utested)
<?php
class dbh {
//Variabelest
private $hostpdo;
private $dbpdo;
private $dbuserpdo;
private $dbpasswordpdo;
//PDO database
public function connect() {
$this->hostpdo = 'localhost';
$this->dbpdo = 'test';
$this->dbuserpdo = 'root';
$this->dbpasswordpdo = '';
$DBH = new PDO("mysql:host=" . $this->hostpdo . "; dbname=" . $this->dbpdo, $this->dbuserpdo, $this->dbpasswordpdo, array(PDO::MYSQL_ATTR_INIT_COMMAND => 'SET NAMES utf8'));
return $DBH;
}
}
class opskrift {
private $connect;
// classen initaliceres med en connection der kommer ude fra
public function __construct($conn){
$this->$connect = $conn;
}
public function __destruct() {
}
public function getOpskrifter($oId) {
$ops = $this->connect->prepare("SELECT opskrift.navn as opskrift, opskrift.bruger_id, opskrift.dato, opskrift.billede, kategori.type from opskrift
join kategori on kategori.id = opskrift.kategori_id where opskrift.id = :Id");
$ops->bindparam(':Id', $oId);
$ops->execute();
$title = $ops->fetchColumn(0);
$this->kat_navn = $title;
echo $this->kat_navn . " <br/>";
}
}
// test stub
// require_once ("class.php");
$opsId = 1;
$con = new dbh();
$pdo_con = $con->connect();
$kat = new opskrift($pdo_con);
$kat->getOpskrifter($opsId);
?>
eller en connection der laves direkte inde fra classen
(utested)
<?php
class dbh {
//Variabelest
private $hostpdo;
private $dbpdo;
private $dbuserpdo;
private $dbpasswordpdo;
//PDO database
public function connect() {
$this->hostpdo = 'localhost';
$this->dbpdo = 'test';
$this->dbuserpdo = 'root';
$this->dbpasswordpdo = '';
$DBH = new PDO("mysql:host=" . $this->hostpdo . "; dbname=" . $this->dbpdo, $this->dbuserpdo, $this->dbpasswordpdo, array(PDO::MYSQL_ATTR_INIT_COMMAND => 'SET NAMES utf8'));
return $DBH;
}
}
class opskrift {
private $connect;
// classen initaliceres med en connection der kaldes inde fra constructoren
public function __construct(){
$con = new dbh();
$this->$connect = $con->connect();
}
public function __destruct() {
}
public function getOpskrifter($oId) {
$ops = $this->connect->prepare("SELECT opskrift.navn as opskrift, opskrift.bruger_id, opskrift.dato, opskrift.billede, kategori.type from opskrift
join kategori on kategori.id = opskrift.kategori_id where opskrift.id = :Id");
$ops->bindparam(':Id', $oId);
$ops->execute();
$title = $ops->fetchColumn(0);
$this->kat_navn = $title;
echo $this->kat_navn . " <br/>";
}
}
// test stub
// require_once ("class.php");
$opsId = 1;
$kat = new opskrift();
$kat->getOpskrifter($opsId);
?>
der er ikke lavet ændringer i class dbh, kun i opskrift og test stubben, for nemheds skyld er det hele lagt i en code fil