sql >> Database >  >> RDS >> Mysql

Codeigniter simple_query vs. query builder (invoegen, bijwerken en verwijderen)

simple_query() is de enige databasemethode in CodeIgniter die zich gedraagt ​​zoals u hebt aangegeven. Zoals de documentatie aangeeft:"De meeste gebruikers zullen deze functie zelden gebruiken."

Op enkele uitzonderingen na, retourneren alle andere Query Builder-methoden een DB_query_builder instantie een CI_DB_result object of - in het geval van "write" type queries - een Boolean die succes of mislukking aangeeft. De weinige uitzonderingen retourneren een geheel getal, tekenreeks of gemengd (een waarde of ONWAAR).

Alle methoden die invoerwaarden accepteren, ontsnappen aan (of optioneel niet ontsnappen) aan de opgegeven waarden.

Hoewel Query Builder (QB) een geweldig hulpmiddel is, is het vaak niet nodig. Met behulp van $this->db->query('your statement here'); is vaak efficiënter. Begrijp dat het doel van QB is om een ​​string te maken die letterlijk wordt gebruikt in een aanroep van db->query('a query string'); .

Dus in plaats van dit alles te typen...

$this->db->select('id, name, email');
$this->db->from('customers');
$this->db->where('id', $id)
$this->db->where('active', $is_active)
$query = $this->get();
$result = $query->result();

Als u het volgende typt, krijgt u exact dezelfde resultaten als hierboven, omdat het rechtstreeks de queryreeks levert die QB in de bovenstaande code heeft gebouwd. (De query is ook volledig ontsnapt.) Maar het voert een ton minder code uit om daar te komen. (Met minder typen.)

$query = $this->db->query("Select id, name, email from customers where id = ? and active = ?", [$id, $is_active]);
$result = $query->result();

Dit is een voorbeeld van het gebruik van Query Binding

Als u de kernbroncode bestudeert (meestal in 'stuurprogramma'-bestanden) ziet u waar u simple_query() gebruikt is gepast en nuttig.




  1. ROW_NUMBER in SQL – Selecteer Topvoorbeeld in SQL en SQL Server

  2. UNIEKE beperking versus controleren vóór INSERT

  3. Gebruik CRYPT_GEN_RANDOM() om een ​​cryptografisch, willekeurig getal in SQL Server te maken

  4. Amazon RDS Aurora versus RDS MySQL versus MySQL op EC2?