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

Codeigniter simple_query e generatore di query (inserisci, aggiorna ed elimina)

simple_query() è l'unico metodo di database in CodeIgniter che si comporta come hai sottolineato. Come afferma la documentazione:"La maggior parte degli utenti utilizzerà raramente questa funzione".

Con poche eccezioni, tutti gli altri metodi di Query Builder restituiscono un DB_query_builder istanza a CI_DB_result oggetto o, nel caso di query di tipo "scrittura", un booleano che indica l'esito positivo o negativo. Le poche eccezioni restituiscono un numero intero, una stringa o un misto (un valore o FALSE).

Tutti i metodi che accettano valori di input sfuggono (o facoltativamente non sfuggono) ai valori forniti.

Sebbene Query Builder (QB) sia un ottimo strumento, spesso non è necessario. Usando $this->db->query('your statement here'); è spesso più efficiente. Comprendere che l'obiettivo di QB è creare una stringa che venga letteralmente utilizzata in una chiamata a db->query('a query string'); .

Quindi, invece di scrivere tutto questo...

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

La digitazione di quanto segue produce esattamente gli stessi risultati di cui sopra perché fornisce direttamente la stringa di query che QB ha creato nel codice precedente. (Anche la query è completamente sfuggita.) Ma esegue una tonnellata di codice in meno per arrivarci. (Con meno digitazione.)

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

Questo è un esempio dell'utilizzo di Query Binding

Lo studio del codice sorgente principale (principalmente nei file "driver") ti mostrerà dove usare simple_query() è appropriato e utile.