sql >> Database teknologi >  >> RDS >> Mysql

Codeigniter simple_query vs. forespørgselsbygger (indsæt, opdater og slet)

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.




  1. hvordan man udfører mysql-kommandoen DELIMITER

  2. Mysql Vælg nogle tilfældige rækker og plus en specifik række

  3. Sådan forhindrer du racetilstand i online hotelbooking

  4. Sammenlign datoer gemt som streng ved hjælp af Datetime