Czesc ucze sie dopiero oop w php i napotkalem sie na problem. Chcialem sobie zrobic dwie klasy. Jedna to baza danych a druga to akcje na tej bazie. Zrobilem cos takiego:
Class Connection {
private $host = "localhost";
private $db_name = "phptutorial";
private $user = "root";
private $password = "[email protected]";
protected function getDatabase(){
try
{
$pdo = new PDO('mysql:host='.$this->host.';dbname='.$this->db_name.'',$this->user, $this->password);
$pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
echo "Connection OK";
}
catch(PDOException $e)
{
echo 'Połączenie nie mogło zostać utworzone: ' . $e->getMessage();
}
}
}
Class Connection_action extends Connection{
public function select(){
$result = $this->getDatabase();
//$stmt = $pdo->query('SELECT id, nazwa, opis FROM produkty');
$sql_query = 'SELECT id, nazwa, opis FROM produkty';
$stmt = $result->query($sql_query);
echo '<ul>';
foreach($stmt as $row)
{
echo '<li>'.$row['nazwa'].': '.$row['opis'].'</li>';
}
$stmt->closeCursor();
echo '</ul>';
}
}
$database1 = new Connection_action;
$database1 ->select();
?>
Ale niestety query() zwraca mi pusty obiekt, mimo ze przypisalem do zmiennej $result cala baze danych. Jak radzic sobie z takim podzialem klas?