CodeIgniter - Arbeiten mit der Datenbank
Wie bei jedem anderen Framework müssen wir sehr oft mit der Datenbank interagieren, und CodeIgniter erleichtert uns diese Aufgabe. Es bietet eine Vielzahl von Funktionen für die Interaktion mit der Datenbank.
In diesem Abschnitt erfahren Sie, wie die CRUD-Funktionen (Erstellen, Lesen, Aktualisieren, Löschen) mit CodeIgniter funktionieren. Wir werden verwendenstud Tabelle zum Auswählen, Aktualisieren, Löschen und Einfügen der Daten in stud Tabelle.
Tabellenname: Stud | |
---|---|
roll_no | int (11) |
Name | varchar (30) |
Herstellen einer Verbindung zu einer Datenbank
Wir können auf zwei Arten eine Verbindung zur Datenbank herstellen:
Automatic Connecting- Die automatische Verbindung kann über die Datei application / config / autoload.php hergestellt werden. Durch die automatische Verbindung wird die Datenbank für jede Seite geladen. Wir müssen nur die Datenbankbibliothek wie unten gezeigt hinzufügen -
$autoload['libraries'] = array(‘database’);
Manual Connecting- Wenn Sie nur für einige Seiten eine Datenbankverbindung wünschen, können Sie eine manuelle Verbindung herstellen. Wir können manuell eine Verbindung zur Datenbank herstellen, indem wir in jeder Klasse die folgende Zeile hinzufügen.
$this->load->database();
Hier übergeben wir kein Argument, da alles in der Datenbankkonfigurationsdatei application / config / database.php festgelegt ist
Einfügen eines Datensatzes
Um einen Datensatz in die Datenbank einzufügen, wird die Funktion insert () wie in der folgenden Tabelle gezeigt verwendet:
Syntax |
Einfügen ([ $ table = '' [, $ set = NULL [, $ Escape = NULL ]]]) |
Parameters |
|
Returns |
WAHR beim Erfolg, FALSCH beim Scheitern |
Return Type |
Bool |
Das folgende Beispiel zeigt, wie Sie einen Datensatz einfügen studTabelle. Die $ data sind ein Array, in dem wir die Daten festgelegt und diese Daten in die Tabelle eingefügt habenstud, Müssen wir nur dieses Feld zu der in dem 2 - Insert - Funktion übergeben nd Argument.
$data = array(
'roll_no' => ‘1’,
'name' => ‘Virat’
);
$this->db->insert("stud", $data);
Einen Datensatz aktualisieren
Um einen Datensatz in der Datenbank zu aktualisieren, müssen Sie die update() Funktion wird zusammen mit verwendet set() und where()Funktionen wie in den folgenden Tabellen gezeigt. Dasset() Die Funktion legt die zu aktualisierenden Daten fest.
Syntax |
set ( $ key [, $ value = '' [, $ Escape = NULL ]]) |
Parameters |
|
Returns |
CI_DB_query_builder-Instanz (Methodenverkettung) |
Return Type |
CI_DB_query_builder |
Das where() Die Funktion entscheidet, welcher Datensatz aktualisiert werden soll.
Syntax |
wobei ( $ key [, $ value = NULL [, $ Escape = NULL ]]) |
Parameters |
|
Returns |
DB_query_builder-Instanz |
Return Type |
Objekt |
Endlich, das update() Die Funktion aktualisiert die Daten in der Datenbank.
Syntax |
update ([ $ table = '' [, $ set = NULL [, $ where = NULL [, $ limit = NULL ]]]) |
Parameters |
|
Returns |
WAHR beim Erfolg, FALSCH beim Scheitern |
Return Type |
Bool |
$data = array(
'roll_no' => ‘1’,
'name' => ‘Virat’
);
$this->db->set($data);
$this->db->where("roll_no", ‘1’);
$this->db->update("stud", $data);
Datensatz löschen
Um einen Datensatz in der Datenbank zu löschen, wird die Funktion delete () wie in der folgenden Tabelle gezeigt verwendet:
Syntax |
löschen ([ $ table = '' [, $ where = '' [, $ limit = NULL [, $ reset_data = TRUE ]]]) |
Parameters |
|
Returns |
CI_DB_query_builder-Instanz (Methodenverkettung) oder FALSE bei einem Fehler |
Return Type |
gemischt |
Verwenden Sie den folgenden Code, um einen Datensatz in der zu löschen studTabelle. Das erste Argument gibt den Namen der Tabelle an, in der der Datensatz gelöscht werden soll, und das zweite Argument entscheidet, welcher Datensatz gelöscht werden soll.
$this->db->delete("stud", "roll_no = 1");
Datensatz auswählen
Um einen Datensatz in der Datenbank auszuwählen, klicken Sie auf get Funktion wird verwendet, wie in der folgenden Tabelle gezeigt -
Syntax |
get ([ $ table = '' [, $ limit = NULL [, $ offset = NULL ]]) |
Parameters |
|
Returns |
CI_DB_result-Instanz (Methodenverkettung) |
Return Type |
CI_DB_result |
Verwenden Sie den folgenden Code, um alle Datensätze aus der Datenbank abzurufen. Die erste Anweisung ruft alle Datensätze aus der Tabelle "stud" ab und gibt das Objekt zurück, das im $ query-Objekt gespeichert wird. Die zweite Anweisung nennt dieresult() Funktion mit $ query-Objekt, um alle Datensätze als Array abzurufen.
$query = $this->db->get("stud");
$data['records'] = $query->result();
Schließen einer Verbindung
Die Datenbankverbindung kann manuell geschlossen werden, indem der folgende Code ausgeführt wird:
$this->db->close();
Beispiel
Erstellen Sie eine Controller-Klasse mit dem Namen Stud_controller.php und speichern Sie es bei application/controller/Stud_controller.php
Hier ist ein vollständiges Beispiel, bei dem alle oben genannten Operationen ausgeführt werden. Erstellen Sie vor dem Ausführen des folgenden Beispiels eine Datenbank und eine Tabelle gemäß den Anweisungen zu Beginn dieses Kapitels und nehmen Sie die erforderlichen Änderungen in der Datenbankkonfigurationsdatei vor, die unter gespeichert istapplication/config/database.php
<?php
class Stud_controller extends CI_Controller {
function __construct() {
parent::__construct();
$this->load->helper('url');
$this->load->database();
}
public function index() {
$query = $this->db->get("stud");
$data['records'] = $query->result();
$this->load->helper('url');
$this->load->view('Stud_view',$data);
}
public function add_student_view() {
$this->load->helper('form');
$this->load->view('Stud_add');
}
public function add_student() {
$this->load->model('Stud_Model');
$data = array(
'roll_no' => $this->input->post('roll_no'),
'name' => $this->input->post('name')
);
$this->Stud_Model->insert($data);
$query = $this->db->get("stud");
$data['records'] = $query->result();
$this->load->view('Stud_view',$data);
}
public function update_student_view() {
$this->load->helper('form');
$roll_no = $this->uri->segment('3');
$query = $this->db->get_where("stud",array("roll_no"=>$roll_no));
$data['records'] = $query->result();
$data['old_roll_no'] = $roll_no;
$this->load->view('Stud_edit',$data);
}
public function update_student(){
$this->load->model('Stud_Model');
$data = array(
'roll_no' => $this->input->post('roll_no'),
'name' => $this->input->post('name')
);
$old_roll_no = $this->input->post('old_roll_no');
$this->Stud_Model->update($data,$old_roll_no);
$query = $this->db->get("stud");
$data['records'] = $query->result();
$this->load->view('Stud_view',$data);
}
public function delete_student() {
$this->load->model('Stud_Model');
$roll_no = $this->uri->segment('3');
$this->Stud_Model->delete($roll_no);
$query = $this->db->get("stud");
$data['records'] = $query->result();
$this->load->view('Stud_view',$data);
}
}
?>
Erstellen Sie eine Modellklasse mit dem Namen Stud_Model.php und speichern Sie es in application/models/Stud_Model.php
<?php
class Stud_Model extends CI_Model {
function __construct() {
parent::__construct();
}
public function insert($data) {
if ($this->db->insert("stud", $data)) {
return true;
}
}
public function delete($roll_no) {
if ($this->db->delete("stud", "roll_no = ".$roll_no)) {
return true;
}
}
public function update($data,$old_roll_no) {
$this->db->set($data);
$this->db->where("roll_no", $old_roll_no);
$this->db->update("stud", $data);
}
}
?>
Erstellen Sie eine Ansichtsdatei mit dem Namen Stud_add.php und speichern Sie es in application/views/Stud_add.php
<!DOCTYPE html>
<html lang = "en">
<head>
<meta charset = "utf-8">
<title>Students Example</title>
</head>
<body>
<?php
echo form_open('Stud_controller/add_student');
echo form_label('Roll No.');
echo form_input(array('id'=>'roll_no','name'=>'roll_no'));
echo "<br/>";
echo form_label('Name');
echo form_input(array('id'=>'name','name'=>'name'));
echo "<br/>";
echo form_submit(array('id'=>'submit','value'=>'Add'));
echo form_close();
?>
</body>
</html>
Erstellen Sie eine Ansichtsdatei mit dem Namen Stud_edit.php und speichern Sie es in application/views/Stud_edit.php
<!DOCTYPE html>
<html lang = "en">
<head>
<meta charset = "utf-8">
<title>Students Example</title>
</head>
<body>
<form method = "" action = "">
<?php
echo form_open('Stud_controller/update_student');
echo form_hidden('old_roll_no',$old_roll_no);
echo form_label('Roll No.');
echo form_input(array('id'⇒'roll_no',
'name'⇒'roll_no','value'⇒$records[0]→roll_no));
echo "
";
echo form_label('Name');
echo form_input(array('id'⇒'name','name'⇒'name',
'value'⇒$records[0]→name));
echo "
";
echo form_submit(array('id'⇒'sub mit','value'⇒'Edit'));
echo form_close();
?>
</form>
</body>
</html>
Erstellen Sie eine Ansichtsdatei mit dem Namen Stud_view.php und speichern Sie es in application/views/Stud_view.php
<!DOCTYPE html>
<html lang = "en">
<head>
<meta charset = "utf-8">
<title>Students Example</title>
</head>
<body>
<a href = "<?php echo base_url(); ?>
index.php/stud/add_view">Add</a>
<table border = "1">
<?php
$i = 1;
echo "<tr>";
echo "<td>Sr#</td>";
echo "<td>Roll No.</td>";
echo "<td>Name</td>";
echo "<td>Edit</td>";
echo "<td>Delete</td>";
echo "<tr>";
foreach($records as $r) {
echo "<tr>";
echo "<td>".$i++."</td>";
echo "<td>".$r->roll_no."</td>";
echo "<td>".$r->name."</td>";
echo "<td><a href = '".base_url()."index.php/stud/edit/"
.$r->roll_no."'>Edit</a></td>";
echo "<td><a href = '".base_url()."index.php/stud/delete/"
.$r->roll_no."'>Delete</a></td>";
echo "<tr>";
}
?>
</table>
</body>
</html>
Nehmen Sie die folgende Änderung in der Routendatei unter vor application/config/routes.php und fügen Sie die folgende Zeile am Ende der Datei hinzu.
$route['stud'] = "Stud_controller";
$route['stud/add'] = 'Stud_controller/add_student';
$route['stud/add_view'] = 'Stud_controller/add_student_view';
$route['stud/edit/(\d+)'] = 'Stud_controller/update_student_view/$1';
$route['stud/delete/(\d+)'] = 'Stud_controller/delete_student/$1';
Lassen Sie uns nun dieses Beispiel ausführen, indem Sie die folgende URL im Browser aufrufen. Ersetzen Sie Ihre Website durch Ihre URL.
http://yoursite.com/index.php/stud