Przechodzimy na PDO

Data: 2016-01-08, autor: Michał Misztal

PDO 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.

Skomentuj lub zgłoś błąd

© Michał Misztal 2018