simple_query()
er den eneste databasemetode i CodeIgniter, der opfører sig som du har påpeget. Som dokumentationen siger:"De fleste brugere vil sjældent bruge denne funktion."
Med nogle få undtagelser returnerer alle andre Query Builder-metoder enten en DB_query_builder
forekomst af et CI_DB_result
objekt eller - i tilfælde af "write" type forespørgsler - en boolesk, der indikerer succes eller fiasko. De få undtagelser returnerer et heltal, streng eller blandet (en værdi eller FALSK).
Alle metoder, der accepterer inputværdier, undslipper (eller eventuelt ikke undslipper) de angivne værdier.
Selvom Query Builder (QB) er et fantastisk værktøj, er det ofte ikke nødvendigt. Brug af $this->db->query('your statement here');
er ofte mere effektivt. Forstå målet med QB er at skabe en streng, der bogstaveligt talt bruges i et kald til db->query('a query string');
.
Så i stedet for at skrive alt dette...
$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();
Indtastning af følgende giver nøjagtig de samme resultater som ovenstående, fordi det direkte giver forespørgselsstrengen, som QB indbyggede i ovenstående kode. (Forespørgslen er også fuldstændig escaped.) Men den udfører et ton mindre kode for at komme dertil. (Med mindre skrivning.)
$query = $this->db->query("Select id, name, email from customers where id = ? and active = ?", [$id, $is_active]);
$result = $query->result();
Dette er et eksempel på brug af Forespørgselsbinding
At studere kernekildekoden (for det meste i 'driver'-filer) vil vise dig, hvor du bruger simple_query()
er passende og nyttig.