Szukaj…


Wybieranie danych

Poniższe funkcje umożliwiają tworzenie instrukcji SQL SELECT.

$this->db->get()

Spowoduje to uruchomienie zapytania wyboru i zwrócenie wyniku. Może być używany samodzielnie do pobierania wszystkich rekordów z tabeli:

$query = $this->db->get('tablename');  // Produces: SELECT * FROM tablename

Drugi i trzeci parametr umożliwiają ustawienie klauzuli limitu i przesunięcia:

$query = $this->db->get('tablename', 10, 20);

// Executes: SELECT * FROM tablename LIMIT 20, 10
// (in MySQL. Other databases have slightly different syntax)

Wybieranie danych

Wybieranie danych z warunkiem

$query  = $this->db->select('*')
                   ->from('table_name')
                   ->where('column_name', $value) // Condition 
                   ->get();
return $query->result();

Wybieranie danych z wieloma warunkami

$conditions = array('column_name_1' => $value_1, 'column_name_2' => $value_2);
$query  = $this->db->select('*')
                   ->from('table_name')
                   ->where($conditions) // Conditions
                   ->get();
return $query->result();

Wybierz dane z warunkiem i limitem

$query  = $this->db->select('*')
                   ->from('table_name')
                   ->where('column_name', $value) // Condition
                   ->limit(10) // Maximum 10 rows
                   ->get();
return $query->result();

Wybierz dane z warunkiem, maksymalną liczbą wierszy i malejącym porządkiem

$query  = $this->db->select('*')
                   ->from('table_name')
                   ->where('column_name', $value) // Condition
                   ->limit(10) // Maximum 10 rows 
                   ->order_by('id','DESC') // Order data descending 
                   ->get();
return $query->result();

Wybieranie danych za pomocą drugiego parametru opcjonalnego

Zwykle nie używamy drugiego parametru w select([$select = '*'[, $escape = NULL]]) w CodeIgniter. Jeśli ustawisz wartość FAŁSZ, CodeIgniter nie będzie próbował chronić nazw pól ani tabel.

W poniższym przykładzie wybieramy pole typu datetime, formatując je za pomocą zapytania SQL i ustawiając na FALSE (W ten sposób powiemy CI, aby automatycznie nie opuszczało zapytania).

public function getUserInfo($id)
{
    $this->db->select('BaseTbl.id, BaseTbl.name, DATE_FORMAT(BaseTbl.createdDtm, "%d-%m-%Y") AS createdDtm', FALSE); // FALSE is the second optional parameter
    $this->db->from('tbl_users as BaseTbl');
    $this->db->where('isDeleted', 0);
    $this->db->where('BaseTbl.id', $id);
    $query = $this->db->get();
            
    return $query->result();
}

Jeśli nie ustawimy go na FALSE , automatycznie ucieka i przerywa zapytanie.

Dołącz do tabel za pomocą Kreatora zapytań

Czasami musimy dołączyć do wielu tabel, aby uzyskać w zamian zagregowane dane. oto jak możemy to osiągnąć za pomocą CodeIgniter Query Builder / Active Records.

public function getStudentInfo($studentid){
    $query = $this->db->select("st.id, st.name, st.class, mk.maths, mk.science")
               ->from("students as st")
               ->join("marks as mk", "mk.student_id = st.id", "inner")
               ->where("st.id", $studentId)
               ->get();
    return $query->result();        
}

Tutaj używamy join () do łączenia wielu tabel i możemy zmienić typ łączenia w 3 parametrze, takim jak „wewnętrzny”, „lewy”, „prawy” itp.



Modified text is an extract of the original Stack Overflow Documentation
Licencjonowany na podstawie CC BY-SA 3.0
Nie związany z Stack Overflow