Ik ben maar weer eens aan de slag gegaan met PHP OOP.
Vooral omdat ik graag wil overstappen op PDO, maar niet bij iedere query een foutafhandeling wil bouwen. Bij m'n MySQL functie werd ik namelijk bij iedere fout op de hoogte gesteld via e-mail.
Hier mijn class:
<?php
// Test
class test {
// Variables
private $mysql;
// Minimum Settings
public function __construct($database_server, $database_user, $database_password, $database_name) {
$this->database_server = $database_server;
$this->database_user = $database_user;
$this->database_password = $database_password;
$this->database_name = $database_name;
$this->database_connection();
}
// MySQL Connection
private function database_connection() {
try {
$this->mysql = new PDO('mysql:host=' . $this->database_server . ';dbname=' . $this->database_name, $this->database_user, $this->database_password);
$this->mysql->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
} catch(PDOException $error) {
echo $this->database_error($error);
}
}
// Test
public function test() {
try {
$result = $this->mysql->query("SELECT * FROM cms_pages");
foreach($result as $row) {
return $row['code'];
}
} catch(PDOException $error) {
echo $this->database_error($error);
}
}
// Error Reporting
private function database_error($error) {
if (mail('[email protected]', 'Database Error', 'Regelnummmer: ' . $error->getLine() . "\r\n" . 'Bestand: ' . $error->getFile() . "\r\n" . 'Foutmelding: ' . $error->getMessage())) {
return $error->getMessage() . ' <b>We already contacted the administrator.</b>';
} else {
return $error->getMessage() . ' <b>We also failed to contact the administrator.</b>';
}
}
}
$test = new test('localhost', 'root', '', 'test');
echo $test->test();
?>
Doe ik het goed, of ga ik heel de verkeerde kant op?
Alvast bedankt voor het antwoorden!