Mysql
 sql >> Teknologi Basis Data >  >> RDS >> Mysql

Perbedaan dalam implementasi prosedural dan berorientasi objek dari mysql di php?

Jawabannya mana yang lebih baik adalah "itu tergantung." Seperti apa pun, ada berbagai pendekatan yang berbeda dan Anda juga harus ingat bahwa kode yang menggunakan objek tidak harus berorientasi objek tetapi masih dapat ditulis secara prosedural. Dalam nada yang sama, kode yang tidak menggunakan objek masih dapat bersifat modular.

Saya akan memilih untuk menggunakan mysqli kelas setiap waktu, meskipun. Tidak ada perbedaan yang signifikan dalam kinerja. Anda mungkin tidak akan menyadari beberapa keuntungan menggunakan kelas DB seperti polimorfisme yang disederhanakan, jadi satu-satunya argumen saya untuk menggunakan kelas adalah bahwa saya lebih suka sintaks. Namun, daripada menggunakan mysqli secara langsung saya mungkin akan merekomendasikan agar Anda memperluas atau menyusunnya. Anda hanya dapat melakukan ini dengan kelas.

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

Ini adalah contoh yang sangat dangkal.

Contoh polimorfisme yang saya bicarakan di atas adalah seperti ini:

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

Omong-omong, saya pasti lebih suka PDO melalui 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. Pencarian SQL jamak/tunggal

  2. Dapatkan Hasil Prosedur Tersimpan Laravel

  3. Konversi skrip MySQL ke SQL Server

  4. Mengapa kueri multi-kolom saya jauh lebih lambat daripada kueri satu kolom yang sesuai, bahkan dengan indeks multi-kolom?

  5. MySQL GROUP_CONCAT dengan Nulls