Mysql
 sql >> Baza danych >  >> RDS >> Mysql

Codeigniter simple_query vs. konstruktor zapytań (wstaw, zaktualizuj i usuń)

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.




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Jak zwiększyć wydajność MySQL AWS dwukrotnie w porównaniu z Amazon RDS przy tym samym koszcie?

  2. MySQL:Jak wybrać rekordy na ten tydzień?

  3. MySQL:Nie można utworzyć tabeli (errno:150)

  4. jak połączyć się z bazą danych na innym serwerze

  5. Użycie if(isset($_POST['submit'])) do niewyświetlania echa, gdy skrypt jest otwarty, nie działa