Mysql
 sql >> база данни >  >> RDS >> Mysql

Разлики в процедурните и обектно-ориентирани реализации на mysql в php?

Отговорът кой е по-добър е "зависи". Както при всяко нещо, има разнообразие от различни подходи и трябва да имате предвид, че кодът, който използва обекти, не е непременно обектно ориентиран, но все пак може да бъде написан процедурно. В същия дух кодът, който не използва обекти, все още може да бъде модулен.

Бих избрал да използвам mysqli клас всеки път обаче. Няма съществена разлика в производителността. Вероятно няма да осъзнаете някои от предимствата на използването на DB клас, като опростен полиморфизъм, така че единственият ми аргумент за използването на класа е, че предпочитам синтаксиса. Въпреки това, вместо да използвате mysqli директно вероятно бих ви препоръчал да го разширите или съставите. Можете да направите това само с класа.

class DB extends mysqli {
    public function __construct() {
        parent::__construct($_SERVER['DB_HOST'],
            $_SERVER['DB_USER'], $_SERVER['DB_PASS']);
    }
}

Това е много плитък пример.

Пример за полиморфизма, за който говорих по-горе, би бил нещо подобно:

class User implements DAO {
    private $db;
    public function __construct(DB $db) {
        $this->db = $db;
    }
}

//Testing code is simplified compared to using it in production
class TestDB extends DB {}
new User(new TestDB);
new User(new DB);

Между другото аз категорично предпочитам PDO през mysqli



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Полезен PHP клас база данни

  2. Създаване на лицензионна система

  3. Използване на псевдоним на колона в същата клауза SELECT

  4. Където се съхранява наборът от резултати, докато работите с jdbc и драйвер на oracle

  5. как да махна дял без изпускане на данни в MySQL?