İçindekiler
NS MySQLi uzantısı ilişkisel bir veritabanı sürücüsüdür, MySQL veritabanları ile bir arayüz sağlamak için pHp programlama dilinde kullanılır.MySQLi kullanmanın avantajları
Hazırlanmış ifadeler: sorgu oluşturmak daha kolaydır, şu işlevle SQL enjeksiyonuna karşı çok fazla güvenlik sunar:
$ mysqli-> hazırla();Birden fazla sorgu veya sorgu
Bir bağlantıda birkaç sorgu veya sorgu yürütme imkanı.
Örnek
$ sqla = "İstemcilerden SEÇ *;" $ sqlb. = "SEÇ * faturalardan ***** müşteri kimliğine göre" $ mysqli-> multi_query ($ sqla; sqlb)Nesne odaklı
MySQLi'nin bu özelliği, geliştiricinin kaynak kodun kullanımını, performansını ve görünürlüğünü iyileştirmek için nesneleri kullanmasına izin verir.
MySQLi Extension sürücüsü, MySQL veritabanlarına bir arayüz sağlamak için PHP programlama dilinde kullanılır. PHP programlama dilinin geliştiricileri, MySQL sunucusunun 4.1.3 ve sonraki sürümleri söz konusu olduğunda MySQLi'yi kullanmanızı önerir.
Herhangi bir veritabanını işlemek veya yönetmek için yöntemler ve özelliklerle pHp'den kullanılacak bir sınıf oluşturacağız.
Sınıf aşağıdaki gibi olacaktır:
class dbmysqli {// bağlantı için bir değişken tanımla public $ bağlantısı; // sınıfın yapıcısını ilan ediyoruz public function __construct ($ host, $ user, $ password, $ db) {} // tablo oluşturma işlevi public function tablo oluşturma ($ sql) {} // Yeni verileri veritabanı verisi genel işlev ekleme ($ tablosu, $ alan verisi) {} // Veri tabanından veri sil genel işlev silme ($ tablosu, $ alan verisi) {} genel işlev Güncelleme ($ tablosu, $ alan seti, $ alan koşulu) {} // işlev Tabloda arama genel işlev araması ($ tablosu, $ alanları) {}}MySQLi Bağlantısı ve sınıfı
MySQLi sunucusuna bağlanmak için yapıcı yöntemini çağırmalı ve yerel ana bilgisayar, kullanıcı adı, veritabanı şifresi ve veritabanı adı gibi ana bilgisayar adı olmak üzere dört argüman göndermeliyiz.
Yapıcıda sunucuya bağlantıyı ekliyoruz:
public function __construct ($ host, $ user, $ password, $ db) {$ this-> bağlantı = new mysqli ($ host, $ user, $ clav); }Sonra onu şu şekilde çağıracağız:
// Sunucuya ve veritabanına bağlanma $ conectb = new dbmysqli ("localhost", "root", "abc123" c, "Vehiculosdb");Dinamik olarak tablo oluşturma yöntemini tanımlıyoruz:
// Tablo oluşturan fonksiyon public function createtable ($ sql) {if ($ this-> bağlantı-> sorgu ($ sql) === TRUE) {echo "Bir tablo oluşturuldu"; } else {echo "Başarısız: tablo oluşturulmadı" $ this-> bağlantı-> hata; }}Daha sonra bu şekilde çağıracağız, sql sorgusunu oluşturacağız ve fonksiyonu çağıracağız. kretabla ():
$ sql = ”MÜŞTERİLER VARSA TABLOYU BIRAKIN`; OLUMSUZ TABLO OLUŞTURMA `müşteriler` (` müşteri kimliği` int (11) NULL DEĞİL AUTO_INCREMENT, `name` varchar (255) NULL DEĞİL, BİRİNCİL ANAHTAR (` müşteri kimliği`)) ”$ connectb -> creartabla ($ sql);pHpMyAdmin'den tablonun nasıl oluşturulduğunu çalıştırırken görebiliriz. php betiği.
Veri ekleme/kaydetme yöntemini tanımlarız
Daha sonra tablolardaki verilerin yönetiminden sorumlu olacak ABM veya CRUD adlı yöntemleri oluşturuyoruz. Her bir metoda parametre göndermek için, dizinin indeksinin tablonun alanı olacağı ve bu indeksin değerinin tablonun alanı için veri olacağı bir dizi kullanacağız. Her dizin adı çift tırnak içine alınmalı ve değer aşağıdaki kurallara uygun olmalıdır:
- Dize değerleri tek tırnak içermelidir. Örnek "isim" => 'Maria'
- Sayısal değerler tırnak işareti içermemelidir. Örnek "fiyat" => 10.50
- NULL VEYA boş sözcüğü tırnak işareti içermemelidir. Örnek "fiyat" => NULL
// dizi alanını parametre olarak alacak fonksiyonu oluşturuyoruz => data public function insert ($ tablo, $ field data) {// eğer birden fazla $ field = implode (",", array_keys) varsa verileri ayırıyoruz ($ alan verileri) ); $ ben = 0; foreach ($ dizin => $ değer olarak $ veri alanları) {$ veri [$ i] = "'".$ değer "'"; $ ben ++; } $ veri = içe patlama (",", $ veri); // Her bir alana if ($ this-> bağlantı-> sorgusu ("INSERT INTO $ tablosu ($ dizin) DEĞERLER ($ veri)") === TRUE) {echo "Yeni istemci eklendi" değerlerini giriyoruz; } else {echo "İstemci eklenemedi başarısız" $ this-> bağlantı-> hatası; }}Bir formdan gelebilecek verilerle matrisimizi oluşturuyoruz:
// $ müşteri eklemek için veri matrisi = dizi ("ad" => 'Carlos Moira', "ad" => 'Jose Triana', "ad" => 'Julia Ordoñez', "ad" => 'Carla Angelez ' );Sonra bunu şu şekilde çağıracağız, ekleme fonksiyonunu ("müşteriler", $müşteriler) çağıracağız ve parametreleri ekleyeceğiz:
$conedb -> ekle ("istemciler", $ istemciler);Verileri silme yöntemini tanımlarız
Silme işlemini gerçekleştirmek için hangi satırı veya kimliği silmek istediğimizi belirteceğimiz bir dizi ilan ediyoruz.
// tablodan veri silme işlevi public function delete ($ tablo, $ veri alanları) {$ i = 0; foreach ($ dizin => $ değer olarak $ veri alanları) {$ veri [$ i] = "'".$ değer "'"; $ ben ++; } $ alan ve veri = içe çarpma ("VE", $ veri); if ($ this-> bağlantı-> sorgu ("DELETE FROM $ table WHERE $ fielddata") === TRUE) {if (mysqli_affected_rows ($ this-> bağlantı)) {echo "Kayıt silindi"; } else {echo "Başarısız, kayıt silinemedi". $ this-> bağlantı-> hata;}}Bir formdan gelebilecek silmek için seçilen verilerle matrisimizi oluşturuyoruz
// $ müşteri silmek için veri matrisi delete = dizi ("müşteri kimliği" => 1, ”müşteri kimliği" => 50, “müşteri kimliği” => 8, “müşteri kimliği” => 104);Sonra bunu şu şekilde çağıracağız, silme fonksiyonunu çağıracağız ("müşteriler", $ müşteri silme) ve parametreleri ekleyeceğiz.
$ conectadb -> sil (“istemciler”, $ istemciler sil);Verileri güncelleme yöntemini tanımlarız
Değiştirmemiz gereken satırın verilerini güncellemek için, biri değiştirilecek alanlar için, diğeri koşul için olmak üzere iki ilişkisel dizi bildireceğiz. nerede SQL sorgusunda. Matris kuralları, en başından beri matris için tanımladığımız sözdizimine uymalıdır.
MySQL güncelleme sözdizimini göz önünde bulundurarak:
GÜNCELLEME İstemciler SET name = 'newname' WHERE clientid.id = idvalue; // Dizi alanını parametre olarak alacak fonksiyonu oluşturuyoruz => data public function Update ($table, $setfields, $conditionfields) {// SET değerlerini değiştirmek için $ i = 0; foreach ($ camposset as $ index => $ data) {$ dataset [$ i] = $ index. "= '". $ data. "'"; $ ben ++; } $ sorgu kümesi = içe çarpma (",", $ veri kümesi); $ ben = 0; foreach ($ koşul alanları olarak $ dizin => $ koşulverileri) {$ koşul [$ i] = $ dizin "= '". $ koşulverileri "'"; $ ben ++; } $ sorgu koşulu = içe çarpma ("VE", $ koşul); // Kayıtları güncelle if ($ this-> bağlantı-> sorgu ("UPDATE $ table SET $ queryset WHERE $ querycondition") === TRUE) {if (mysqli_affected_rows ($ this-> bağlantı)) {echo "Kayıt güncellendi "; } else {echo "Başarısız, kayıt silinemedi". $ this-> bağlantı-> hata;}}Güncellenecek alanlar ve yeni değerler olacak SET verileri ile dizimizi oluşturuyoruz, ayrıca bir formdan gelebilecek güncellenecek kayıtların kimliği ile WHERE koşulu için bir dizi oluşturuyoruz:
// Data matrix SET $ customerset = dizi ("name" => 'Carlos Juan Dolfo', "name" => 'Pedro Dorien Triana', "name" => 'Enrique Ordoñez', "name" => 'Carla Dolores Angeles'); $ müşterilernerede = dizi ("müşteri kimliği" => 1, "müşteri kimliği" => 2, "müşteri kimliği" => 5, "müşteri kimliği" => 10);Sonra bunu şu şekilde çağıracağız, Update fonksiyonunu çalıştıracağız ("customers", $ customerset, $ customerwhere) ve buna parametreleri ekleyeceğiz.
$ dbconnect-> Güncelleme ("istemciler", $ clientset, $ clientwhere);Tüm sorgularda, hataları tespit etmek için yerel MySQLi işlevini kullanıyoruz $ mysqli-> hatası, yürütülmüş ve başarısız olabilecek herhangi bir SQL sorgusu veya MySQLi işlevi için bir hata mesajı gösterecek, böylece hatanın neden oluştuğunu bilebiliriz.
Veri arama yöntemini tanımlarız
Tablodan veri elde etmek için iki parametreli bir sorgu yöntemi oluşturuyoruz, biri tablonun adı, diğeri ise sütunların adını ve aranacak değeri içeren bir dizi.
Elde edilecek sonuç matrisinin türünü belirtebiliriz. Bu parametre için olası değerler sabitlerdir. MYSQLI_ASSOC, MYSQLI_NUM.
Dizi türü MYSQLI_ASSOC
Dizi {isim => 'Carlos Juan Dolfo', isim ”=> 'Enrique Ordoñez'}Dizi türü MYSQLI_NUM
Dizi {0 => 'Carlos Juan Dolfo', 1 => 'Enrique Ordoñez'} genel işlev araması ($ tablo, $ alanlar) {$ alanlar = içe doğru (",", $ alanlar); $ sonuç = $ this-> bağlantı-> sorgu ("$ tablosundan $ alanlarını SEÇ"); $ sonuç döndür-> fetch_all (MYSQLI_ASSOC); }Bir formdan gelebilecek aranacak verilerle matrisimizi oluşturuyoruz:
// Aranacak veri dizisi $ client search = dizi ("istemci kimliği", ”ad”);Sonra bunu şu şekilde çağıracağız, arama fonksiyonunu ("müşteriler", $ müşteri araması) çağıracağız ve parametreleri ekleyeceğiz:
$ connectdb -> arama ($ tablo, $ müşteri arama);Bu fonksiyon bir yeniden kayıt her alanın verilerini görmek için bir dizi olarak geçmemiz gerekecek:Bu Eğitimi beğendiniz ve yardım ettiniz mi?Yazara olumlu puan vermek için bu düğmeye basarak yazarı ödüllendirebilirsiniz.