Veriler, çoğu uygulamanın ana hatlarıdır. Verilerin, içgörü sağlamak ve iş kararlarını kolaylaştırmak için daha fazla analiz edilebilecek şekilde depolanması gerekir. Veriler genellikle veri tabanında saklanır. Veritabanıyla etkileşimde bulunulduğunda başlıca endişeler arasında güvenlik, erişim kolaylığı ve Yapılandırılmış Sorgu Dili'nin (SQL) veritabanı satıcısına özgü uygulamaları yer alır.
Aktif kayıt, veritabanıyla kolay, güvenli ve anlamlı bir şekilde etkileşimi kolaylaştıran bir tasarım modelidir.
Aktif kayıt aşağıdaki avantajlara sahiptir
- Etkin kaydın basit yöntem zincirleriyle kayıtları ekleyin, güncelleyin ve silin
- Kullanıcı girişini, parametreleri kullanarak güvenli bir şekilde gönderir
- Uygulama kodunu yeniden yazmadan MySQL, SQL Server vb. Gibi birden çok veritabanı motoruyla çalışmanıza izin verir
- CodeIgniter, arka planda her veritabanı motoru için özel sürücüler kullanır.
Bu eğitimde şunları öğreneceksiniz:
- Aktif Kayıt nasıl kullanılır: Örnek
- CodeIgniter Veritabanı Yapılandırması
- CodeIgniter Aktif Kayıt Ekle
- CodeIgniter Aktif Kaydı Seçin
- CodeIgniter Güncellemesi Aktif Kayıt
- CodeIgniter Aktif Kaydı Sil
Aktif Kayıt nasıl kullanılır: Örnek
Bu öğreticide, öğretici veritabanını tartışacağız. Biri sipariş, diğeri detayları olan iki masamız olacak.
Bu eğitici, MySQL veritabanınızın kurulu ve çalışır durumda olduğunu varsayar.
Öğretici veritabanı oluşturmak için aşağıdaki komut dosyalarını ç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 order ve order_details adında iki tablo oluşturur. İki tablo arasındaki ilişki, siparişlerdeki sütun kimliği ve order_details tablosundaki order_id ile tanımlanır.
CodeIgniter Veritabanı Yapılandırması
Şimdi uygulamamızı bu veritabanı ile iletişim kurabilecek şekilde yapılandıracağız.
Application / config / database.php'de 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ğıdaki şekilde güncelleyin
'hostname' => 'localhost','username' => 'root','password' => 'letmein','database' => 'ci_active_record',
Not: Kullanıcı adını ve parolayı MySQL yapılandırmanızla eşleşenlerle değiştirmeniz gerekecektir.
Veritabanı yapılandırma ayrıntılarına ek olarak, CodeIgniter'a yüklendiğinde veritabanı kitaplığını yüklemesini de söylememiz gerekir.
Adım 1) Aşağıdaki dosyayı açın application / config / autoload.php
Adım 2) $ autoload dizisi 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şladığı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 kontrolör ve tanımlanmış yollar oluşturacağız.
Yeni bir dosya uygulaması / denetleyiciler / ActiveRecordController.php oluşturun
ActiveRecordController.php'ye aşağıdaki kodu ekleyin
'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ğerler atayan bir dizi değişken verisini tanımlar
- $ this-> db-> insert ('siparişler', $ veri); veritabanı kitaplığının insert yöntemini çağırır, tablo adı sıralarını 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 ifadesini oluşturur.
Artık aktif kayıt için denetleyici yöntemini başarıyla oluşturduğumuza göre, denetleyici yöntemini yürütmek için arayacağımız bir yol oluşturmamız gerekecek.
Şimdi application / config / route.php içinde route.php dosyasını açın
aşağıdaki satırı rotalara ekleyin
$route['ar/insert'] = 'activerecordcontroller/store_order';
İŞTE,
- ActiveRecordController'ın store_order'ını çağıran bir yol ar / insert tanımlarız.
Şimdi yöntemimizi test etmek için web sunucusunu başlatalım.
Yerleşik PHP sunucusunu başlatmak için aşağıdaki komutu çalıştırın
cd C:\Sites\ci-appphp -S localhost:3000
İŞTE,
- Yukarıdaki komut tarayıcısı 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 / ekle
Aşağıdaki sonuçları alacaksınız
order has successfully been created
MySQL öğretici veritabanını açın ve siparişler tablosunu kontrol edin
Aşağıdaki resimde gösterildiği gibi yeni oluşturulmuş satırı yapabileceksiniz.
CodeIgniter Aktif Kaydı Seçin
Bu bölümde veritabanında bulunan kayıtları nasıl okuyacağımızı ve web tarayıcısında sırasız liste olarak nasıl görüntüleyeceğimizi göreceğiz.
ActiveRecordController'a aşağıdaki yöntemi ekleyin
public function index() {$query = $this->db->get('orders');echo "Orders Listing
";echo "
- ";foreach ($query->result() as $row) {echo "
- $row->customer_name ";}echo "
İŞTE,
- $ sorgu = $ this-> db-> get ('siparişler'); tüm alanları seçerek sipariş tablosuna göre seçim sorgusunu çalıştırır
- echo "
Sipariş Listesi
"; 3 boyutunda bir HTML başlığı görüntüler - echo "
- "; sıralanmamış HTML listesi için açılış etiketini yazdırır
- foreach ($ sorgu-> sonuç (), $ satır) {…}, veritabanından döndürülen sonuçlar arasında döngü yapmak için for döngüsünü kullandı. echo "
- $ satır-> müşteri_adı "; customer_name'i 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 yol tanımlayalım
Application / config / route.php tablosunu açın
Aşağıdaki rotayı ekleyin
$route['ar'] = 'activerecordcontroller';
İŞTE,
- Yol ar, ActiveRecordController sınıfının dizin yöntemine işaret eder. Bu, varsayılan olarak, kayıt ekleyen rota için sizin yaptığınız gibi dizin yöntemini belirlemememizin nedenidir.
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 benzeyen sonuçları görebilmelisiniz.
CodeIgniter Güncellemesi Aktif Kayıt
Bu bölümde, aktif kaydın veritabanını güncellemek için nasıl kullanılacağından bahsedeceğiz. Joe Thomas müşteri adını Joe olarak güncellemek istediğimizi varsayalım.
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-> burada ('id', 1); güncelleme sorgusunun where cümlesini 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 route.php application / config / route.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
Şimdi veritabanı kayıtlarını görüntüleyelim ve değişikliklerin etkilenip etkilenmediğini görelim.
Yukarıda verilen görüntüden de görebileceğiniz gibi, ilk kayıt Joe Thomas'tan Joe'ya güncellendi.
CodeIgniter Aktif Kaydı Sil
Şimdi veritabanından bir kayıt sileceğiz. 3 numaralı 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-> burada ('id', 1); where cümlesini ayarlar
- $ this-> db-> sil ('siparişler'); where cümlesi kullanılarak belirlenen ölçütlere göre siparişler tablosundaki veritabanı satırını siler.
Yukarıdaki kodu çalıştırmak için aşağıdaki URL'yi web tarayıcımıza yükleyin
http: // localhost: 3000 / ar / sil
Özet
Bu eğitimde, veritabanından kayıt eklemek, güncellemek, silmek ve seçmek için aktif 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ıtlar oluşturmak için kullanabileceği bir kullanıcı arayüzü oluşturacağız.