codeigniter
Frågestruktur
Sök…
Välja data
Följande funktioner låter dig bygga SQL SELECT-satser.
$this->db->get()
Detta kör urvalsfrågan och returnerar resultatet. Kan användas av sig själv för att hämta alla poster från en tabell:
$query = $this->db->get('tablename'); // Produces: SELECT * FROM tablename
De andra och tredje parametrarna gör det möjligt att ställa in en begränsnings- och kompensationsklausul:
$query = $this->db->get('tablename', 10, 20);
// Executes: SELECT * FROM tablename LIMIT 20, 10
// (in MySQL. Other databases have slightly different syntax)
Välja data
Välja data med villkor
$query = $this->db->select('*')
->from('table_name')
->where('column_name', $value) // Condition
->get();
return $query->result();
Välja data med flera villkor
$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();
Välj data med villkor och gräns
$query = $this->db->select('*')
->from('table_name')
->where('column_name', $value) // Condition
->limit(10) // Maximum 10 rows
->get();
return $query->result();
Välj data med villkor, maximala rader och ordningsfallande
$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();
Välja data med den andra valfria parametern
Vanligtvis använder vi inte den andra parametern i select([$select = '*'[, $escape = NULL]])
i CodeIgniter. Om du ställer in det FALSE kommer CodeIgniter inte att försöka skydda dina fält- eller tabellnamn.
I följande exempel kommer vi att välja fältet för datatyp genom att formatera det med hjälp av sql-frågan och ställa in det FALSE
(genom att göra detta kommer vi att säga CI att inte undvika frågan automatiskt).
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();
}
Om vi inte är inställda på FALSE
kommer den automatiskt att rymma och bryta frågan.
Gå med i tabeller med hjälp av Query Builder
Ibland måste vi gå med i flera tabeller för att få sammanlagda data i gengäld. här är hur vi kan uppnå samma med hjälp av 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();
}
Här använder vi join () för att gå med i flera tabeller och vi kan ändra kopplingstyp i den tredje parametern som "inre", "vänster", "höger" etc.