Codeigniter Aktif Kayıt: Ekle, Seç, Güncelle, Sil

Veriler çoğu uygulamanın ana damarıdır. Verilerin, içgörü sağlamak ve iş kararlarını kolaylaştırmak için daha fazla analiz edilebilecek şekilde saklanması gerekir. Veriler genellikle veritabanında saklanır. Veritabanıyla etkileşimde bulunulurken karşılaşılan başlıca kaygılar arasında güvenlik, erişim kolaylığı ve Yapılandırılmış Sorgu Dilinin (SQL) veritabanı sağlayıcısına özel uygulamaları yer alır.

Aktif kayıt, veritabanıyla kolay, güvenli ve anlaşılır bir şekilde etkileşime geçmeyi kolaylaştıran bir tasarım modelidir.

Aktif kaydın aşağıdaki avantajları vardır

  • Aktif kaydın basit yöntem zincirleriyle kayıtları ekleyin, güncelleyin ve silin
  • Parametreleri kullanarak kullanıcı girişini güvenli bir şekilde gönderir
  • Gibi birden fazla veritabanı motoruyla çalışmanıza olanak tanır MySQL, SQL Server vb. uygulama kodunu yeniden yazmadan
  • CodeIgniter arka planda her veritabanı motoruna özel sürücüleri kullanır.

Aktif Kayıt nasıl kullanılır: Örnek

Bu eğitimde, eğitim veritabanını ele alacağız. İki tablomuz olacak, biri siparişler diğeri detaylar.

Bu eğitimde aşağıdaki bilgilere sahip olduğunuz varsayılmaktadır: MySQL veritabanı kurulu ve çalışır durumda.

Eğitim veritabanını oluşturmak için aşağıdaki betikleri çalıştırın:

CREATE SCHEMA ci_active_record;

USE ci_active_record;

CREATE TABLE `order_details` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `order_id` int(11) DEFAULT NULL,
  `item` varchar(245) DEFAULT NULL,
  `quantity` int(11) DEFAULT '0',
  `price` decimal(10,2) DEFAULT '0.00',
  `sub_total` decimal(10,2) DEFAULT '0.00',
  PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT = 1;

CREATE TABLE `orders` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `date` timestamp NULL DEFAULT NULL,
  `customer_name` varchar(245) DEFAULT NULL,
  `customer_address` varchar(245) DEFAULT NULL,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT = 1;

Yukarıdaki kod ci_active_record adlı bir veritabanı oluşturur ve orders ve order_details adlı iki tablo oluşturur. İki tablo arasındaki ilişki orders tablosundaki sütun kimliği ve order_details tablosundaki order_id ile tanımlanır.

CodeIgniter Veritabanı Yapılandırması

Şimdi uygulamamızı bu veritabanıyla iletişim kurabilecek şekilde yapılandıracağız.

application/config/database.php dosyasında bulunan veritabanı yapılandırma dosyasını açın

Yapılandırma dosyasında aşağıdaki satırları bulun

'hostname' => 'localhost',
	'username' => '',
	'password' => '',
	'database' => '',

Yukarıdaki kodu aşağıdakine güncelleyin

'hostname' => 'localhost',
	'username' => 'root',
	'password' => 'letmein',
	'database' => 'ci_active_record',

Not: kullanıcı adınızı ve şifrenizi yapılandırmanıza uygun olanlarla değiştirmeniz gerekecektir. MySQL.

Veritabanı yapılandırma ayrıntılarına ek olarak, CodeIgniter'a yükleme sırasında veritabanı kitaplığını yüklemesini de söylememiz gerekiyor

) 1 Adım Aşağıdaki application/config/autoload.php dosyasını açın

) 2 Adım $autoload dizi anahtarı kitaplıklarını bulun ve veritabanı kitaplığını aşağıda gösterildiği gibi yükleyin.

$autoload['libraries'] = array('database');

İŞTE,

  • Yukarıdaki kod, uygulama başlatıldığında veritabanı kitaplığını yükler.

CodeIgniter Aktif Kayıt Ekle

Test amacıyla, uygulamamızla aktif kayıt aracılığıyla etkileşimde bulunmak için kullanacağımız bir denetleyici ve tanımlanmış yollar oluşturacağız.

Yeni bir uygulama/kontrolörler/ActiveRecordController.php dosyası oluşturun

Aşağıdaki kodu ActiveRecordController.php'ye ekleyin

<?php
defined('BASEPATH') OR exit('No direct script access allowed');
class ActiveRecordController extends CI_Controller {
    public function store_order(){
        $data = [
            'date' => '2018-12-19',
            'customer_name' => 'Joe Thomas',
            'customer_address' => 'US'
        ];

        
        $this->db->insert('orders', $data); 

        echo 'order has successfully been created';
    }
}

İŞTE,

  • $data = […], veritabanı tablo adlarını dizi anahtarları olarak kullanan ve bunlara değer atayan bir dizi değişkeni verisini tanımlar
  • $this->db->insert('siparişler', $veri); veritabanı kitaplığının ekleme yöntemini çağırır, tablo adı siparişlerini ve parametre olarak $data dizi değişkenini iletir. Bu satır, alan adları olarak dizi anahtarlarını ve veritabanına eklenecek değerler olarak dizi değerlerini kullanarak SQL INSERT deyimini oluşturur.

Artık aktif kayıt için denetleyici yöntemini başarıyla oluşturduğumuza göre, artık denetleyici yöntemini yürütmek için çağıracağımız bir rota oluşturmamız gerekecek.

Şimdi Routes.php dosyasını application/config/routes.php dosyasında açın.

rotalara aşağıdaki satırı ekleyin

$route['ar/insert'] = 'activerecordcontroller/store_order';

İŞTE,

  • ActiveRecordController'ın Store_order'ını çağıran bir ar/insert rotası tanımlarız.

Şimdi yöntemimizi test etmek için web sunucusunu başlatalım.

PHP için yerleşik sunucuyu başlatmak için aşağıdaki komutu çalıştırın

cd C:\Sites\ci-app
php -S localhost:3000

İŞTE,

  • Yukarıdaki komut tarayıcısını komut satırına gidin ve yerleşik sunucuyu 3000 numaralı bağlantı noktasından başlatın.

Aşağıdaki URL'yi tarayıcınıza yükleyin

http://localhost:3000/ar/insert

Aşağıdaki sonuçları elde edeceksiniz

order has successfully been created

Açın MySQL öğretici veritabanı ve siparişler tablosunu kontrol edin

Aşağıdaki resimde gösterildiği gibi yeni oluşturulan satırı yapabileceksiniz

CodeIgniter Aktif Kayıt Ekle

CodeIgniter Aktif Kaydı Seçin

Bu bölümde veritabanımızda bulunan kayıtların nasıl okunacağını ve web tarayıcısında sırasız liste halinde nasıl görüntüleneceğini göreceğiz.

ActiveRecordController'a aşağıdaki yöntemi ekleyin

public function index() {
        $query = $this->db->get('orders');
        
        echo "<h3>Orders Listing</h3>";
        echo "<ul>";
        
        foreach ($query->result() as $row) {
            echo "<li>$row->customer_name</li>";
        }
        
        echo "</ul>";
    }

İŞTE,

  • $query = $this->db->get('siparişler'); tüm alanları seçerek seçme sorgusunu siparişler tablosunda çalıştırır
  • Eko " Sipariş Listeleme ”; 4 boyutunda bir HTML başlığı görüntüler
  • Eko " ”; sıralanmamış HTML listesi için açılış etiketini yazdırır
  • foreach ($query->result() as $row) {…}, veritabanından döndürülen sonuçlar arasında döngü yapmak için for döngüsünü kullandı. Eko " $row->müşteri_adı ”; müşteri_adını veritabanından yazdırır

Aşağıdaki URL'yi yüklemeden önce veritabanına birkaç kayıt daha yükleyebilirsiniz.

Şimdi SELECT sorgusu için bir rota tanımlayalım

application/config/routes.php tablosunu açın

Aşağıdaki rotayı ekleyin

$route['ar'] = 'activerecordcontroller';

İŞTE,

  • Route ar, ActiveRecordController sınıfının indeks yöntemine işaret eder. Bu varsayılan olarak budur, bu nedenle kayıt ekleyen rota için yaptığınız gibi indeks yöntemini belirtmedik.

Web sunucusunun zaten çalıştığını varsayarak, aşağıdaki URL'yi yükleyin

http://localhost:3000/ar

Web tarayıcınızda aşağıdakine çok benzer sonuçlar görebilmelisiniz

CodeIgniter Aktif Kaydı Seçin

CodeIgniter Aktif Kaydı Güncelle

Bu bölümde veritabanını güncellemek için aktif kaydın nasıl kullanılacağından bahsedeceğiz. Diyelim ki Joe Thomas müşteri adını Joe olarak güncellemek istiyoruz.

ActiveRecordController sınıfına aşağıdaki yöntemi ekleyin

public function update_order() {
        $data = [
            'customer_name' => 'Joe',
        ];
        $this->db->where('id', 1);
        $this->db->update('orders', $data);
        echo 'order has successfully been updated';
    }

İŞTE,

  • $data = […] veritabanı tablosunda güncellemek istediğimiz alanları ve değerleri tanımlar
  • $this->db->where('id', 1); güncelleme sorgusunun nerede yan tümcesini ayarlar
  • $this->db->update('siparişler', $veri); SQL güncelleme sorgusunu oluşturur ve veritabanımızda yürütür.

Yukarıdaki kod aşağıdaki SQL ifadesini üretecektir

UPDATE orders SET customer_name = 'Joe' WHERE id = 1;

Şimdi Routes.php application/config/routes.php dosyasını güncelleyelim.

Aşağıdaki rotayı ekleyin

$route['ar/update'] = 'activerecordcontroller/update_order';

Değişiklikleri kaydedin

Aşağıdaki URL'yi web tarayıcısına yükleyin

CodeIgniter Aktif Kaydı Güncelle

Şimdi veritabanı kayıtlarını görüntüleyelim ve değişikliklerin etkilenip etkilenmediğine bakalım.

CodeIgniter Aktif Kaydı Güncelle

Yukarıda verilen görselden de görebileceğiniz gibi ilk kayıt Joe Thomas'tan Joe'ya güncellendi.

CodeIgniter Aktif Kaydı Sil

Şimdi veritabanından bir kaydı sileceğiz. id numarası 3 olan kaydı sileceğiz.

ActiveRecordController'a aşağıdaki yöntemi ekleyin

public function delete_order() {
        $this->db->where('id', 3);
        $this->db->delete('orders');

        echo 'order has successfully been deleted';
    }

İŞTE,

  • $this->db->where('id', 1); Where cümleciğini ayarlar
  • $this->db->delete('siparişler'); Where cümleciği kullanılarak belirlenen kriterlere göre siparişler tablosundaki veritabanı satırını siler.

Yukarıdaki kodu çalıştırmak için web tarayıcımıza aşağıdaki URL'yi yükleyin

http://localhost:3000/ar/delete

ÖZET

Bu öğreticide, veritabanından kayıt eklemek, güncellemek, silmek ve seçmek için etkin bir kayıtla nasıl çalışılacağını öğrendiniz. Kayıt oluşturmak, güncellemek ve silmek için statik değerlerle çalıştık. Bir sonraki eğitimde kullanıcının veritabanında dinamik olarak kayıt oluşturmak için kullanabileceği bir kullanıcı arayüzü oluşturacağız.