sql >> Database >  >> RDS >> Mysql

Verschillen in procedurele en objectgeoriënteerde implementaties van mysql in php?

Het antwoord waarop is beter is "het hangt ervan af". Zoals met alles, zijn er verschillende benaderingen en je moet er ook rekening mee houden dat code die objecten gebruikt niet noodzakelijk objectgeoriënteerd is, maar nog steeds procedureel kan worden geschreven. In dezelfde geest kan code die geen objecten gebruikt nog steeds modulair zijn.

Ik zou ervoor kiezen om de mysqli . te gebruiken maar elke keer les. Er is geen significant verschil in prestaties. Sommige voordelen van het gebruik van een DB-klasse, zoals vereenvoudigd polymorfisme, zult u waarschijnlijk niet beseffen, dus mijn enige argument om de klasse te gebruiken, is dat ik de voorkeur geef aan de syntaxis. In plaats van mysqli . te gebruiken rechtstreeks zou ik u waarschijnlijk aanraden om het uit te breiden of samen te stellen. Je kunt dit alleen met de klas doen.

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

Dit is een heel oppervlakkig voorbeeld.

Een voorbeeld van het polymorfisme waar ik het hierboven over had, zou zoiets als dit zijn:

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);

Overigens geef ik categorisch de voorkeur aan PDO via mysqli



  1. PHP MySQL - Voor elke 6 rijen een div invoegen?

  2. Rails automatisch toewijzende id die al bestaat

  3. Hoe een subquery opnieuw te gebruiken in sql?

  4. com.mysql.jdbc.exceptions.jdbc4.MySQLNonTransientConnectionException:geen bewerkingen toegestaan ​​nadat de verbinding is gesloten