Baza danych - szybki start: Przykłady użycia
Na tej stronie znajdziesz przykłady tego w jaki sposób używać klasy Database. Jeśli chcesz poznać szczegóły przeczytaj każdą ze stron, która odnosi się do poszczególnych funkcjonalności.
Inicjalizowanie klasy Database
Poniższy kod ładuje i inicjalizuje klasę bazy danych w oparciu o ustawienia konfiguracyjne:
$this->load->database();
Raz załadowana klasa jest gotowa do wykorzystania, tak jak opisano poniżej.
Uwaga: Jeśli na wszystkich stronach aplikacji będziesz wymagał połączenia z bazą danych, możesz łączyć się automatycznie. Po szczegóły zajrzyj na stronę o łączeniu się z bazą danych.
Standardowe zapytanie z wieloma wynikami (wersja obiektowa)
$query = $this->db->query('SELECT name, title, email FROM my_table');
foreach ($query->result() as $row)
{
echo $row->title;
echo $row->name;
echo $row->email;
}
echo 'Łączna liczba wyników: ' . $query->num_rows();
Powyższa funkcja result() zwraca tablicę obiektów. Przykład: $row->title
Standardowe zapytanie z wieloma wynikami (wersja z tablicą)
$query = $this->db->query('SELECT name, title, email FROM my_table');
foreach ($query->result_array() as $row)
{
echo $row['title'];
echo $row['name'];
echo $row['email'];
}
Powyższa funkcja result_array() zwraca tablicę z tablicą indeksów. Przykład: $row['title']
Sprawdzanie wyników
Jeśli wywołujesz zapytanie, które może nie zwrócić wyniku, powinieneś przetestować, czy wynik rzeczywiście jest zwracany za pomocą funkcji num_rows():
$query = $this->db->query("TWOJE ZAPYTANIE");
if ($query->num_rows() > 0)
{
foreach ($query->result() as $row)
{
echo $row->title;
echo $row->name;
echo $row->body;
}
}
Standardowe zapytanie z jednym wynikiem
$query = $this->db->query('SELECT name FROM my_table LIMIT 1');
$row = $query->row();
echo $row->name;
Powyższa funkcja row() zwraca obiekt. Przykład: $row->name
Standardowe zapytanie z jednym wynikiem (wersja z tablicą)
$query = $this->db->query('SELECT name FROM my_table LIMIT 1');
$row = $query->row_array();
echo $row['name'];
Powyższa funkcja row_array() zwraca tablicę. Przykład: $row['name']
Standardowe dodawanie
$sql = "INSERT INTO mytable (title, name)
VALUES (".$this->db->escape($title).", ".$this->db->escape($name).")";
$this->db->query($sql);
echo $this->db->affected_rows();
Zapytania Active Record
Wzorzec Active Record umożliwia prostszy sposób pobierania danych:
$query = $this->db->get('table_name');
foreach ($query->result() as $row)
{
echo $row->title;
}
Powyższa funkcja get() zwraca wszystkie wyniki z podanej tabeli. Klasa Active Record zawiera pełen zestaw funkcji do pracy z bazą danych i danymi.
Dodawanie za pomocą Active Record
$data = array(
'title' => $title,
'name' => $name,
'date' => $date
);
$this->db->insert('mytable', $data);
// Daje zapytanie: INSERT INTO mytable (title, name, date) VALUES ('{$title}', '{$name}', '{$date}')