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.