Podręcznik użytkownika CodeIgniter wersja 2.2.1


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}')