RkBlog

Hardware, programming and astronomy tutorials and reviews.

Bazy Danych - ciąg dalszy

Własne zapytania SQL

$query = $this->db->query('Zapytanie SQL');
Metoda "query" wykonuje zapytanie i zwraca do niego uchwyt. Dodatkowo do dyspozycji mamy:
$this->db->escape('łańcuch')
Odpowiednio zabezpiecza (ukośniki i inne operacje) znaki znaczące coś w języku SQL - zabezpiecza przed błędami i atakami SQL Injection (wykonanie złośliwego zapytania przez osoby trzecie). Zwraca łańcuch z zabezpieczonymi danymi. Dodatkowo umieszcza je w pojedynczych cudzysłowach więc nie musimy tego robić.
$this->db->dbprefix
Prefiks do tabel ustawiony w konfiguracji

Wyświetlanie pobranych danych

Wykonanie własnego zapytania SELECT czy też skorzystanie z "get" w Activer Records nie daje nam od razu wyników. Dostajemy uchwyt do nich. By otrzymać wyniki musimy wykonać na uchwycie metodę result() zwracającą wyniki w postaci obiektu lub result_array() w postaci tablicy. Oto przykład:
<?php
$query = $this->db->query("SELECT * FROM tabela");

 foreach ($query->result() as $row)
    {
    echo $row->pole1;
    echo $row->pole2;
    echo $row->pole3;
    }
Uchwyty mają dwie inne metody:
$query->num_rows()
$query->num_fields()
Gdzie $query to uchwyt. num_rows zwraca liczbę wierszy zwróconą przez zapytanie (gdy interesuje nas sama liczba wyników to koniecznie stosować COUNT w zapytaniu SQL). Metoda num_fields zwraca ilość pól zwróconych przez wynik.

Pozostałe metody CI

$this->db->insert_id() - zwróci numer ID pod wykonanym zapytaniu INSERT (dodaniu wpisu). Tabela musi mieć pole auto_increment/serial
$this->db->affected_rows() - zwróci ilość wierszy, na które wpłynęło zapytanie (insert, update, delete...)
$this->db->version() - wyświetla wersję bazy, z której korzystamy.
RkBlog

Kurs Code Igniter, 14 July 2008, Piotr Maliński

Comment article