sql >> Databáze >  >> RDS >> Mysql

Codeigniter simple_query vs. tvůrce dotazů (vložení, aktualizace a odstranění)

simple_query() je jedinou databázovou metodou v CodeIgniter, která se chová tak, jak jste poukázali. Jak uvádí dokumentace:"Většina uživatelů tuto funkci využije jen zřídka."

Až na několik výjimek všechny ostatní metody Query Builder vracejí buď DB_query_builder instance CI_DB_result objekt nebo - v případě dotazů typu "write" - booleovský, který označuje úspěch nebo neúspěch. Několik výjimek vrací celé číslo, řetězec nebo smíšené (hodnota nebo FALSE).

Všechny metody, které přijímají vstupní hodnoty, unikají (nebo volitelně neescapují) zadané hodnoty.

I když je Query Builder (QB) skvělý nástroj, často to není nutné. Pomocí $this->db->query('your statement here'); je často efektivnější. Pochopte, že cílem QB je vytvořit řetězec, který se doslova používá při volání db->query('a query string'); .

Takže místo psaní tohoto všeho...

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

Zadáním následujícího dosáhnete přesně stejných výsledků jako výše, protože přímo poskytuje řetězec dotazu, který QB zabudoval do výše uvedeného kódu. (Dotaz je také plně escapován.) Ale vykoná o tuny méně kódu, aby se tam dostal. (S méně psaním.)

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

Toto je příklad použití Vazba dotazu

Studium základního zdrojového kódu (většinou v souborech 'ovladače') vám ukáže, kde pomocí simple_query() je vhodné a užitečné.




  1. Jak vybrat určitý počet znaků zleva nebo zprava od řetězce na serveru SQL

  2. Kontrola prázdného pole pomocí MySQL

  3. SQL JOIN dvě tabulky s AVG

  4. Oracle Date – Jak přidat roky k datu