simple_query()
jest jedyną metodą bazy danych w CodeIgniterze, która zachowuje się tak, jak wskazałeś. Jak czytamy w dokumentacji:„Większość użytkowników rzadko korzysta z tej funkcji”.
Z kilkoma wyjątkami, wszystkie inne metody Konstruktora zapytań zwracają albo DB_query_builder
wystąpienie CI_DB_result
obiekt lub - w przypadku zapytań typu "write" - Boolean oznaczający sukces lub niepowodzenie. Kilka wyjątków zwraca liczbę całkowitą, ciąg znaków lub wartość mieszaną (wartość lub FALSE).
Wszystkie metody, które akceptują wartości wejściowe, uciekają (lub opcjonalnie nie escape) dostarczonych wartości.
Chociaż Query Builder (QB) jest świetnym narzędziem, często nie jest potrzebny. Używając $this->db->query('your statement here');
jest często bardziej wydajny. Zrozum, że celem QB jest utworzenie łańcucha, który jest dosłownie używany w wywołaniu db->query('a query string');
.
Więc zamiast wpisywać to wszystko...
$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();
Wpisanie poniższego daje dokładnie takie same wyniki jak powyżej, ponieważ bezpośrednio dostarcza ciąg zapytania, który QB zbudował w powyższym kodzie. (Kwerenda też jest w pełni escapowana.) Ale wykonuje o tonę mniej kodu, aby się tam dostać. (Mniej pisania.)
$query = $this->db->query("Select id, name, email from customers where id = ? and active = ?", [$id, $is_active]);
$result = $query->result();
To jest przykład użycia Wiązania zapytań
Przestudiowanie podstawowego kodu źródłowego (głównie w plikach „sterowników”) pokaże Ci, gdzie używać simple_query()
jest odpowiedni i użyteczny.