Podręcznik użytkownika CodeIgniter wersja 2.2.1


Funkcje pomocnicze zapytań

$this->db->insert_id()

Zwraca numer ID, kiedy wykonujemy dodanie do bazy danych.

$this->db->affected_rows()

Pokazuje liczbę zmienionych wierszy, podczas wykonywania zapytań "zapisu" (insert, update, itd.).

Uwaga: W MySQL zapytanie "DELETE FROM TABLE" zwraca 0 zmienionych wierszy. Klasa bazy danych posiada mały hack, który pozwala na zwrócenie poprawniej ilości zmienionych wierszy. Domyślnie hack ten jest włączony, ale może zostać wyłączony w pliku drivera bazy danych.

$this->db->count_all();

Pozwala na określenie ilości wierszy w konkretnej tabeli. W pierwszym parametrze podajemy nazwę tabeli. Przykład:

echo $this->db->count_all('moja_tabela');

// Zwraca wartość typu integer, np. 25

$this->db->platform()

Zwraca nazwę platformy bazy danych, z której korzystasz (MySQL, MS SQL, Postgres, itd...):

echo $this->db->platform();

$this->db->version()

Zwraca numer wersji bazy danych, z której korzystasz:

echo $this->db->version();

$this->db->last_query();

Zwraca ostatnie zapytanie, jakie zostało uruchomione (samo zapytanie, nie rezultat). Przykład:

$str = $this->db->last_query();

// Daje: SELECT * FROM jakastabela....

Te dwie funkcje pomagają ułatwić proces pisania poleceń typu INSERT i UPDATE.

$this->db->insert_string();

Ta funkcja upraszcza proces pisania zapytań dodawania do bazy danych. Zwraca poprawnie sformatowane zapytanie SQL typu INSERT. Przykład:

$data = array('name' => $name, 'email' => $email, 'url' => $url);

$str = $this->db->insert_string('nazwa_tabeli', $data);

Pierwszy parametr jest nazwą tabeli, kolejny natomiast tablicą asocjacyjną z danymi, które mają zostać dodane. Powyższy przykład daje zapytanie:

INSERT INTO nazwa_tabeli (name, email, url) VALUES ('Rick', 'rick@example.com', 'example.com')

Uwaga: Wartości są automatycznie escapowane, powstaje więc bezpieczniejsze zapytanie.

$this->db->update_string();

Ta funkcja upraszcza proces pisania zapytań aktualizacji do bazy danych. Zwraca poprawnie sformatowane zapytanie SQL typu UPDATE. Przykład:

$data = array('name' => $name, 'email' => $email, 'url' => $url);

$where = "author_id = 1 AND status = 'active'";

$str = $this->db->update_string('nazwa_tabeli', $data, $where);

Pierwszy parametr jest nazwą tabeli, kolejny jest tablicą asocjacyjną z danymi, które mają zostać zaktualizowane, natomiast trzeci parametr jest klauzulą "where" dla zapytania. Powyższy przykład daje zapytanie:

UPDATE nazwa_tabeli SET name = 'Rick', email = 'rick@example.com', url = 'example.com' WHERE author_id = 1 AND status = 'active'

Uwaga: Wartości są automatycznie escapowane, powstaje więc bezpieczniejsze zapytanie.