Przechodzimy na PDO
Data: 2016-01-08, autor: Michał MisztalPDO czyli PHP Data Objects to interfejs dzięki któremu możemy komunikować się z bazami danych. Plusem jest to, że kod taki nie zmienia się nawet gdy w grę wchodzą różne systemy baz danych. Jeden problem z głowy. Drugi - kod jest krótszy i bardziej czytelny.
Zerknijmy na taką pokrakę
public function odczytaj_poId($id){
$this->aDane['id']=$id;
$sql = "SELECT * FROM artykuly WHERE id=".$this->aDane['id'].";";
try{
$polaczenie = new mysqli(HOST, DB_GUEST, DB_PASSWORD_GUEST, DB_NAME);
if ($polaczenie->connect_errno!=0){
throw new Exception(mysqli_connect_errno());
} else {
$result = $polaczenie->query($sql);
while ($row = $result->fetch_assoc()){
$this->aDane=$row;
}
$polaczenie->close();
}
} catch (Exception $ex){
echo 'Błąd połączenia nr '.$ex;
}
}
A teraz z użyciem PDO
public function odczytaj_poId($id){
$this->aDane['id']=$id;
$sql = "SELECT * FROM artykuly WHERE id=".$this->aDane['id'].";";
try {
$pdo=new PDO('mysql:host='.HOST.';dbname='.DB_NAME,DB_GUEST, DB_PASSWORD_GUEST );
$result=$pdo->query($sql);
foreach ($result as $value){
$this->aDane=$value;
}
$result->closeCursor();
} catch (PDOException $ex) {
echo 'Błąd połączenia '.$ex->getMessage();
}
}
Oczywiście pętli while i foreach użyłem zamiennie i nie ona nas obchodzi. Jak widać błąd połączenia jest również obiektem. Do tego nie trzeba się okopywać za if'ami, które dodatkowo zaciemniają kod. No i w zasadzie tyle. Stosujcie podejście obiektowe i ....eee, myjcie ząbki.