internet pencereler Android
Genişletmek

MySQL ile PHP örneği. PHP Mysqli ile Çalışma Temelleri

PHP MySQL'in 2011 yılında Desteğinin sona ermesiyle bağlantılı olarak, PDO veya PDOS tam olarak veritabanları ile çalışmak için kullanılır. Mysqli.. Daha iyi işlevselliğe sahipler (MySQL'den daha) ve OOP (nesneye yönelik arayüz) API'dir. Hangisi daha iyidir, bu, başka bir makale için bir konudur, bu makalede Mysqli ile çalışmanın temelleri ile başa çıkmaya çalışacağız. Bu nedenle, başka ön yüzeyler olmadan, bağlantıya (CONNECT), (SELECT), ekle (ekle), güncellemeleri (Güncelleştir) ve Sil (Sil) Kayıtları (Veriler / Belgeler / Bilgi) PHP MySQLI aracılığıyla silin. Umarım bu makalenin PHP Mysqli ile çalışırken ortaya çıkabilecek sorunları çözmede faydalı olacaktır.

MySQLI'yi yükleme

PHP sürüm 5.3.0 +, MySQLI kullanırken varsayılan olarak kullanılabilir; Eski sürümlerin mevcut olmasını sağlamak için, dosyanın içindeki php_mysqli.dll dosyasını etkinleştirmeniz gerekir. php.ini. ve PHP.ini'yi düzenleyin, LINE Extension'u canlandırın \u003d php_mysqli.dll. Linux'ta, PHP5 MySQL paketini kurarken MySQLII otomatik olarak yüklenecektir. Windows ve Linux sistemlerinde kurulum hakkında daha fazla bilgi bulunabilir.

Veritabanı bağlantısı

MySQLI, veritabanına bağlanmanın iki yolu sunar: prosedürel ve nesne yönelimli. Nesneye yönelik kullanmanız önerilir. Prosedür (eski) MySQL'e benzer, bu nedenle yeni başlayanlar için tercih edilecektir, kullanmaları önerilmediklerini hatırlaması tercih edilir.

Php.

// prosedürel stil $ mysqli \u003d mysqli_connect ("ev sahibi", "kullanıcı adı", "şifre", "veritabanı_adı"); // nesne odaklı stil (önerilir) $ mysqli \u003d yeni mysqli ("ev sahibi", "kullanıcı adı", "şifre", "veritabanı_adı");

Aşağıda, nesneye yönelik yöntemin veritabanıyla bağlantının açılmasıdır. Bu yöntem aşağıdaki tüm örneklerde kullanılacaktır.

Php.

connect_Error) (Die ("Hata: (". $ Mysqli-\u003e Connect_errno. ")" $ Mysqli-\u003e connect_error);)?\u003e?

İlişkilendirici bir dizinin biçiminde ortaya çıkan seri seçimi (SELECT)

mysqli_fetch_assoc (): Aşağıdaki kodda, ortaya çıkan çözünürlük aralığı, ilişkisel bir dizi biçiminde çıkarılır. İade edilen dizi, sütun adlarının dahili verilere erişmek için kullanılan anahtar olacağı veritabanından elde edilen satırlar içerir. Aşağıda gösterildiği gibi, veriler bir HTML tablosu olarak görüntülenir.

Php.

connect_Error) (Die ("Hata: (". $ Mysqli-\u003e Connect_errno. ")" $ Mysqli-\u003e connect_error);) // mysqli Select Query $ sonuçlar \u003d $ mysqli-\u003e "; İken ($ row \u003d $ sonuç-\u003e fetch_assoc ()) (baskı" "; Yazdır" "; Yazdır" "; Yazdır" "; Yazdır" "; Yazdır" "; Yazdır"";) Yazdır"
"$ satır [" id "]."". $ Satır [" product_code "].". "$ Row [" Product_Name "]."". $ Row [" Product_desc "]."". $ satır [" fiyat "]."
"; Bir sonuç ile ilişkilendirilen belleği azaltıyor-\u003e bedava (); // connection $ $ mysqli-\u003e close ();?\u003e

Seçim (SELECT) elde edilen satırı bir dizi (ilişkisel, normal veya her ikisi) biçiminde

FETCH_ARRAY (): Mysqli_fetch_row ve mysqli_fetch Doç. Bu özellik, MySQLI_FETCH_ROW () işlevinin genişletilmiş bir sürümüdür; Veri erişimi için, hem dize hem de rakamları kullanabilirsiniz.

Php.

connect_Error) (Die ("Hata: (". $ Mysqli-\u003e Connect_errno ". Ürünlerin fiyatı "); Yazdır " fetch_array ()) (yazdırma "; Yazdır" "; Yazdır" "; Yazdır" "; Yazdır" "; Yazdır" "; Yazdır"";) Yazdır"
"$ satır [" id "]."". $ Satır [" product_code "].". "$ Row [" Product_Name "]."". $ Row [" Product_desc "]."". $ satır [" fiyat "]."
"; Bir sonuç ile ilişkilendirilen belleği azaltıyor-\u003e bedava (); // connection $ $ mysqli-\u003e close ();?\u003e

Bir nesne olarak ortaya çıkan seriyi seçin (SELECT)

fETCH_OBJECT (): Bir nesne biçiminde bir sonuç belirlemek için, Mysqli Fetch_Object () kullanmanız gerekir. Nesnenin özellikleri, elde edilen sette bulunan alan adlarını gösterecektir.

Php.

connect_Error) (Die ("Hata: (". $ Mysqli-\u003e Connect_errno ". Ürünlerin fiyatı "); Yazdır " "; Eğer ($ sıra \u003d $ sonuçlar-\u003e fetch_object ()) (baskı" "; Yazdır" "; Yazdır" "; Yazdır" "; Yazdır" "; Yazdır" "; Yazdır"";) Yazdır"
"$ Row-\u003e ID.""$ Row-\u003e Product_code.""$ Row-\u003e Product_Name.""$ Row-\u003e Product_desc.""$ Row-\u003e Fiyat."
"; // yakın bağlantı $ $ mysqli-\u003e close ();?\u003e

Tek bir değeri seçin (seçin)

Fetch_Object (Cameron Spear yöntemi) kullanarak veritabanından tek bir değer elde edebilirsiniz.

Php.

connect_Error) (Kalıp ("Hata: (". 1 ") -\u003e FETCH_OBJECT () -\u003e Ürün_adı; $ Product_Name; // çıktı değeri $ mysqli-\u003e close (); ?\u003e.

(Sayımı Seç) Tablodaki Satır Sayısı

Bazen tablodaki satır sayısını, özellikle de sayfa numaralandırırken bulmanız gerekir.

Php.

connect_Error) (Die ("Hata: (". $ Mysqli-\u003e Connect_errno ". Kullanıcılardan "); $ GET_TOTAL_ROWS \u003d $ sonuçlar-\u003e fetch_row (); // TOPLAM TOPLAMA KAYITLARI DEĞİŞİKLİK DEĞERLENDİRİLMESİ MYSQLII-\u003e Close (); ?\u003e.

Seç (hazırlanan ifadeler)

hazırlanan devletler. - Aynı şablonla inşa edilen sorguların tekrarlanmasını hızlandırmanıza olanak sağlayan özel DBMS aracı.

Mysqli'nin özelliklerinden biri, zaten yazılı şablonları kullanabilme yeteneğidir: yani, istek bir kez yazmak için yeterlidir, daha sonra çeşitli parametrelerle tekrar tekrar yürütülebilir. Zaten yazılı şablonların kullanımı, büyük tablolar ve karmaşık sorgular için performansı geliştirir. Her isteğin analizini önlemek için kötü amaçlı kodun önlenmesi için sunucu tarafından ayrı ayrı yapılır.

Aşağıdaki kod, veritabanından veri almak için şablon (hazırlanan ifadeyi) kullanır. Agrega ? SQL sorgusu, işaretçinin rolünü oynar ve sırayla bir dize, bir tamsayı, çift veya blok olabilen bir parametre ile ikame edilir. Bizim durumumuzda, bu bir sıra $ search_product.

Php.

$ search_product \u003d "pd1001"; // Ürün ID // Hazırlanan bir ifade oluştur $ query \u003d "Select ID, Product_Code, Product_desc, Product_code \u003d?"; $ deyim \u003d $ mysqli-\u003e hazırlamak ($ \u200b\u200bsorgu); // işaretçiler için parametreleri bağlayın, burada (s \u003d string, i \u003d integer, d \u003d double, b \u003d blob) $ Beyanname-\u003e bind_param ("s", $ Search_Product); // sorguyu uygulayın $ Bildirim-\u003e Execute (); // Sonuç değişkenlerini $ Bildirim-\u003e "; // Kayıtları Alırken ($ Bildirim-\u003e Fetch ()) (Yazdır" "; Yazdır" "; Yazdır" "; Yazdır" "; Yazdır" "; Yazdır"";) Yazdır"
"$ Kimliği.""$ Product_code.""$ Product_desc.""$ Fiyat."
"; // bağlantıyı kapat $ Bildirim-\u003e Kapat ();

Birkaç parametre ile aynı istek:

Php.

$ search_id \u003d 1; $ search_product \u003d "pd1001"; $ Query \u003d "Select ID, Product_Code, Product_desc, üründen fiyat, kimliğin \u003d? Ve product_code \u003d?"; $ deyim \u003d $ mysqli-\u003e hazırlamak ($ \u200b\u200bsorgu); $ Açıklama-\u003e Bind_Param ("is", $ Search_ID, $ Search_Product; $ Bildirim-\u003e Execute (); $ Bildirim-\u003e Bind_Result ($ ID, $ Product_code, $ Product_desc, $ Fiyat); Yazdır " "; İken ($ açıklama-\u003e getiri ()) (baskı" "; Yazdır" "; Yazdır" "; Yazdır" "; Yazdır" "; Yazdır"";) Yazdır"
"$ Kimliği.""$ Product_code.""$ Product_desc.""$ Fiyat."
"; // bağlantıyı kapat $ Bildirim-\u003e Kapat ();

Eklemek (ekleme) kayıtları

Aşağıdaki kayıt, tabloya yeni bir satır ekler.

Php.

real_escape_string ("p1234"). "" "$ Company_name \u003d" ". $ Mysqli-\u003e real_escape_string (" 42 inç tv ")." "" $ Company_price \u003d "". $ Mysqli-\u003e real_escape_string ")." ""; // mysqli insert query $ insert_row \u003d $ mysqli-\u003e sorgusal ("Ürünlere eklemek, ürüne ekleme, ustalaş)") "); eğer ($ insert_row) (yazdır" başarı! Son eklenen kaydın kimliği: " $ Mysqli-\u003e insert_id. "
";) Başka (ölmek (" hata: ". $ Mysqli-\u003e errno.") "$ Mysqli-\u003e hatası);)?\u003e

Aşağıdaki bir alıntı, şablonlar (hazırlanan ifade) ile aynı değerleri ekler. Söylediğimiz gibi, şablonlar SQL enjeksiyonuna karşı son derece etkilidir. Yukarıdaki örnek için, kullanımı en uygun seçenektir.

Php.

// veritabanı tablosuna eklenecek değerler $ complet_code \u003d "p1234"; $ Product_Name \u003d "42 inç TV"; $ Product_Price \u003d "600"; $ Query \u003d "Ürünlere ekle (ürün_code, product_name, fiyat) değerleri (?,?,?)"; $ deyim \u003d $ mysqli-\u003e hazırlamak ($ \u200b\u200bsorgu); // işaretçiler için parametreleri bağlayın, burada (s \u003d string, i \u003d integer, d \u003d double, b \u003d blob) $ Bildirim-\u003e Bind_Param ("SSS", $ Product_Code, $ Product_Name, $ Product_Cice); Eğer ($ Bildirim-\u003e Execute ())) (Yazdır "başarısı! Son takılı kaydın kimliği:" $ Beyanname-\u003e insert_id. "
";) Başka (ölmek (" hata (". $ Mysqli-\u003e errno.") "$ Mysqli-\u003e hatası);) $ açıklama-\u003e close ();

Eklemek (eklemek) Birden fazla kayıt

Birkaç satırın eki eşzamanlı olarak, her bir değer sırasının parantez içine uygulanması ve diğer deniz kenarından ayrılmalıdır. Bazen kaç tane girişin yerleştirildiğini, güncellendiğini veya kaldırıldığını bilmeniz gerekir, bunun için MySQLI_AFFECTED_ROWS kullanabilirsiniz.

Php.

// Ürün 1 $ Product_code1 \u003d "". "$ MySqli-\u003e real_escape_string (" P1 ")." ""; $ Product_Name1 \u003d "". $ mysqli-\u003e real_escape_string ("Google Nexus"). "" "; $ Product_Price1 \u003d "". "$ mysqli-\u003e real_escape_string (" 149 ")." ""; // Ürün 2 $ Product_Code2 \u003d "" .. $ mysqli-\u003e real_escape_string ("p2"). "" "; $ Product_Name2 \u003d "". "$ Mysqli-\u003e real_escape_string (" Apple iPad 2 ")." ""; $ Product_Price2 \u003d "". "$ Mysqli-\u003e real_escape_string (" 217 ")." ""; // Ürün 3 $ Product_Code3 \u003d "" .. $ mysqli-\u003e real_escape_string ("P3"). "" "; $ Product_Name3 \u003d "". $ Mysqli-\u003e real_escape_string ("Samsung Galaxy Note"). "" "; $ Product_Price3 \u003d "". "$ Mysqli-\u003e real_escape_string (" 259 ")." ""; // birden fazla satır ekle $ ekers \u003d $ mysqli-\u003e sorgu ("Ürünlere ekle, product_code, product_name, $ Product_Name1, $ Product_Price1), ($ Product_code2, $ Product_name2, $ Product_Price2), ($ Product_code3, $ Product_Name3, $ Product_Price3 ) "); İf ($ ekle) (// mysqli_affected_rows kullanarak toplam eklenen kayıtları iade edin "Başarı! Toplam." $ MySqli-\u003e etkilenen_rows. "Satırlar eklendi.
";) Başka (kalıp (" hata: (". $ Mysqli-\u003e errno.") "$ Mysqli-\u003e hatası);)

Kaydı güncelle / sil (Sil)

Prensip güncelleme ve Sil kayıtları aynı. Sorgu dizesini MySQL güncellemesinde değiştirmek ya da silmek için yeterlidir (anlamadım, bakmıyorum).

Php.

// mysqli güncellemesi $ sonuçlar \u003d $ mysqli-\u003e query ("update ürünlerini güncelleme) Set Product_Name \u003d" 52 inç TV ", product_code \u003d" 323343 "Where \u003d 24"); // mysqli query // $ sonuçlar \u003d $ mysqli-\u003e sorgu ("ID \u003d 24"); İf ($ sonuçlar) ("Başarı! Yazdırın" yazdırın ";) Başkaları (Yazdır" Hatası: (". $ Mysqli-\u003e Errno.") "$ MySqli-\u003e Hatası;)

Hazırlıklı ifadeler

Şablonlar (Hazırlanan Devletler) kullanarak kaydı güncelleme örneği aşağıda gösterilmiştir.

Php.

$ Product_Name \u003d "52 inç TV"; $ Product_code \u003d "9879798"; $ find_id \u003d 24; $ Query \u003d "Ürünleri güncelle Product_name \u003d?, Product_code \u003d? Nerede id \u003d?"; $ deyim \u003d $ mysqli-\u003e hazırlamak ($ \u200b\u200bsorgu); // işaretçiler için parametreleri bağlayın, burada (s \u003d dize, i \u003d integer, d \u003d double, b \u003d blob) $ sonuçlar \u003d $ deyim-\u003e bind_param ("SSI", $ Product_Name, $ Product_code, $ Find_ID); eğer ($ sonuçlar) (yazdırın "Başarı! Kaydedin";) Başka (Yazdır "Hatası: (" $ MySqli-\u003e Errno. ")

Eski Kayıtları Çıkarma

Sunucudaki tüm girişler sunucuda 1 günden fazla silinir; Gün sayısı ayarlanabilir.

Php.

// mysqli sorgusu $ Sonuçlar \u003d $ mysqli- (Şimdi () - aralık 1 gün) "); eğer ($ sonuçlar) (yazdır" başarısını! Bir günlük eski kayıtları sildi ";) başka (yazdır" hatası: (". $ Mysqli- Sonuç

Hiç şüphe yok, MySQLI, çalışmalarının ilkeleri oldukça benzer olsa da, MySQLI Standard MySQL Genişleme PHP'den önemli ölçüde daha iyidir. Umarım, gelecekte projeleri oluştururken ve aktarırken yukarıdaki bilgiler faydalı olacaktır. Kolaylık sağlamak için, örnek dosyaları indirmek için aşağıdakiler uygulandı. Bu, indirme düğmesine tıklayarak yapılabilir.

RNR ile MySQL Veritabanı ile Çalışma

Ders. Hazırlanan Prokhorov vs


1. PNP senaryolarının MySQL tablolarıyla bağlantısı

RNR tarafından MySQL veritabanıyla çalışmanıza izin veren en sık kullanılan özellikleri göz önünde bulundurun.

RNR ve MySQL etkileşime girdiğinde, program DBMS ile bir dizi işlevle etkileşime girer.

1.1 Sunucuya bağlantı. İşlev mysql_connect.

Veritabanıyla çalışmadan önce, kullanıcıya yetkilendirmenin yanı sıra onunla bir ağ bağlantısı kurmanız gerekir. Bu MySQL_Connect () işlevidir.

kaynak mysql_connect (]])

Bu özellik, ağ bağlantısını $ Sunucu Ana Bilgisayarı'nda bulunan MySQL veritabanına ayarlar (varsayılan LocalHost, yani geçerli bilgisayardır) ve bir açık bağlantı tanımlayıcısı döndürür. Tüm diğer işler bu tanımlayıcı ile gerçekleştirilir. Bu tanımlayıcıyı (tanımlayıcı) bir argüman olarak alan diğer tüm işlevler seçilen veritabanını benzersiz bir şekilde tanımlayacaktır. Kayıt olurken, kullanıcı adı $ kullanıcı adı ve $ şifre şifresi (varsayılan olarak, geçerli işlemin çalıştığı kullanıcı adı), komut dosyalarını hata ayıklama yaparken: kök ve boş bir şifre):

$ dbpasswd \u003d ""; //Parola

// bir uyarı göster

eko ("

");

Değişkenler $ DBlocation, $ dbuser ve $ dbpasswd store sunucusu adı, kullanıcı adı ve şifre.

1.2 Sunucuya bağlantıyı tarve. İşlev mysql_close

MySQL sunucusuna bağlantı, komut dosyasının sonunda veya MySQL_CLOSE işlevini çağırırken otomatik olarak kapanır.

bool mysql_close ()

Bu özellik MySQL sunucusuna bağlantıyı kırar ve işlemin başarılı bir şekilde yürütülmesi ve aksi takdirde false ile doğrular. İşlev, MySQL_Connect işlevi tarafından döndürülen bir argüman olarak bir veritabanı bağlantı tanımlayıcısını kabul eder.

$ dblocation \u003d "localhost"; // Sunucu adı

$ dbuser \u003d "root"; //Kullanıcı adı

$ dbpasswd \u003d ""; //Parola

// Veritabanı sunucusuna bağlantıyı girin

// fonksiyonu aramadan önce @ hata çıkış sembolünü @ bastırın

$ dbcnx \u003d @ mysql_connect ($ dblocation, $ dbuser, $ dbpasswd);

if (! $ dbcnx) // Tanımlayıcı 0 ise, bağlantı yüklenmedi

// bir uyarı göster

eko ("

B Artık veritabanı sunucusu kullanılamıyor, bu nedenle sayfanın doğru görüntülenmesi imkansız.");

if (mysql_close ($ dbcnx)) // bağlantıyı kırmak

yankı ("Veritabanına bağlantı durduruldu");

yankı ("Bağlantıyı tamamlamayı başardı");

1.3 Bir veritabanı oluşturma. Veritabanı özelliği oluşturma

Komuta - Bir veritabanı oluşturma yalnızca sunucu yöneticisi için kullanılabilir ve çoğu barındırma işleminde gerçekleştirmek imkansızdır:

Veritabanı adı oluşturun

Adlandırma adıyla yeni bir veritabanı oluşturur.

Bu özellik ile çalışmanın bir örneği:

@Mysql_query ("veritabanı oluştur $ dbname");

SQL komutlarını içeren satırın sınırlayıcıları olarak her yerde ("SQL - Command") kesme işlemlerinin kullanılması önerilir. Bu, hiçbir $ değişkenin yanlışlıkla enterpolasyon yapmamasını sağlayabilir (yani değeri ile değiştirilmez) ve komut dosyalarının güvenliği artacaktır.

Veritabanı Veritabanı CREAT COMPORT komutu yalnızca Superuser için kullanılabilir ve çoğu barındırma kullanıcısı üzerinde basit bir kullanıcı gerçekleştirmek imkansızdır. Sadece sunucu yöneticisi için kullanılabilir.

Deneyler için, komut satırından bir SQL sorgusu gerçekleştirerek bir testbase veritabanı oluşturun. Bunu yapmak için, MySQL sistemine giriş yapın ve komut istemine MySQL girin:

mySQL\u003e Veritabanı testbase oluşturun;

Bundan sonra, çevirmelisin:

mySQL\u003e Testbase kullanın;

Veritabanı oluşturuldu:



1.4 Veritabanını seçin. İşlev mysql_select_db.

İlk talebi MySQL sunucusuna göndermeden önce, hangi veritabanı çalışacağımıza dikkat etmelisiniz. Bu amaçla, MySQL_SELECT_DB işlevi amaçlanmıştır:

bool mysql_select_db (String $ veritabanı_adı [, kaynak $ link_Identifier])

PHP'yi bir $ Link_Identive Connection ile yapılan işlemlerde $ veritabanı_name kullanılacağını bildirir.

Bu işlevi kullanmak, bir SQL sorgusunda bir kullanım komutunu aramaya eşdeğerdir, yani MySQL_SELECT_DB işlevi daha fazla iş için bir veritabanı seçer ve ardından tüm SQL sorguları seçilen veritabanına uygulanır. İşlev, veritabanı_adı seçili veritabanının adını argümanlar ve kaynak bağlantı tanımlayıcısı olarak alır. İşlev, başarılı bir işlemle doğru ve yanlış - aksi halde:

// veritabanı ile bağlantı kodu

if (! @mysql_select_db ($ dbname, $ dbcnx))

// bir uyarı göster

eko ("

B Artık veritabanı mevcut değil, bu nedenle doğru sayfa ekranı mümkün değil.");

1.5 İşleme Hataları

MySQL ile çalışma sırasında hatalar meydana gelirse (örneğin, istemler dengeli değildir veya yeterli parametre yoktur), daha sonra hata mesajı ve numarası aşağıda açıklanan iki işlev kullanılarak elde edilebilir.

Dikkatlice ve bu işlevleri zamanında kullanmak önemlidir, çünkü aksi takdirde komut dosyalarının hata ayıklaması daha karmaşık hale gelebilir.

● İşlev:

İnt mysql_errno ()

en son kaydedilen hatanın numarasını döndürür. Script çalışma süresi boyunca yalnızca bir bağlantı kurulursa $ Link_IDIDFIER bağlantı tanımlayıcısını belirtemezsiniz.

● İşlev:

dize mysql_error ()

bir numara değil, hata mesajının metnini içeren bir dize. Hata ayıklama amacıyla başvurmak uygundur. Genellikle, MySQL_Error, tasarım veya kalıpla (), örneğin:

@Mysql_connect ("localhost", "kullanıcı", "şifre")

veya ölmek ("Bir veritabanına bağlanma hatası:" .mysql_error ());

Operatör @, her zamanki gibi, bir hata durumunda ortaya çıkabilecek standart uyarıyı bastırmak için kullanılır.

MySQL'deki RNR uyarısının en son sürümlerinde varsayılan olarak kaydedilmez.

1.6 MySQL ile bağlantı. Dosya ( config.php. )

Genellikle sitede aynı anda bir kerede birkaç komut dosyası vardır. Aynı veritabanına erişmeniz gerekir.

MySQL'ye bağlanmasından sorumlu kod, ayrı bir dosyada vurgulanması önerilir ve ardından istediğiniz komut dosyalarına ekle işlevini kullanarak bağlanın.

Değişkenlerin $ DBoser Sunucusu, $ dbuser kullanıcı adı, şifre $ dbasswd ve adıyla ilan edildiği aynı dosyaya (Config.php) bir veritabanı bağlamak, seçmek ve oluşturmak için bir anlam ifade eder. $ dbname veritabanı adı:

Config.php listesi:

//config.php Sunucu ve veritabanı seçimi ile bağlantı parametrelerini içeren dosya kodu

// Tarayıcıya hata mesajlarını görüntüler

$ dblocation \u003d "localhost"; // Sunucu adı

$ dbname \u003d "Baz adını ekle" // veritabanı adı: Oluşturuldu veya zaten var

$ dbuser \u003d "root"; // veritabanı kullanıcı adı

$ dbpasswd \u003d ""; //Parola

// Veritabanı sunucusuna bağlantıyı girin

// fonksiyonu aramadan önce @ hata çıkış sembolünü @ bastırın

[E-posta Korumalı]_Connect ($ dblocation, $ dbuser, $ dbpasswd);

if (! $ dbcnx) // Tanımlayıcı 0 ise, veritabanı sunucusuna bağlantı yüklenmemiş

// bir uyarı göster

eko ("

Şu anda, veritabanı sunucusu kullanılamaz, bu nedenle sayfanın doğru görüntülenmesi imkansızdır.

");

// $ dbname veritabanı oluşturun - sadece bir süper kullanıcı yapabilir

// Veritabanı zaten varsa, kritik olmayan bir hata olacak

@Mysql_query ("DBNAME yoksa veritabanı oluşturun);

// Bir veritabanında bağlantı kodu: Yeni oluşturulan veritabanının veya mevcut bir veritabanının açık bir seçimini gerçekleştiriyoruz.

// fonksiyonu aramadan önce @ hata çıkış sembolünü @ bastırın

eğer ( [E-posta Korumalı]_select_db ($ dbname, $ dbcnx)) // Tanımlayıcı 0 ise, veritabanı bağlantısı yüklü değil

// bir uyarı göster

eko ("

Şu anda, veritabanı mevcut değil, bu nedenle sayfanın doğru görüntülenmesi imkansız.

");

// mesajı görüntüleyen küçük yardımcı fonksiyon

// bir veritabanı isteği hatası durumunda hata hakkında

function PutError ($ mesaj)

eko ("");



2. Veritabanı sorgularını gerçekleştirin

2.1 Bir masa oluşturma. İşlev Tablo oluştur:

Tablo Tablo Adı Oluştur (Namepole Tipi, Namepole Tipi,)

Veritabanındaki bu komut, kendi adları (isimler) ve belirtilen türlerle tanımlanan sütunlarla (alanlar) ile yeni bir tablo oluşturur. Tabloyu oluşturduktan sonra, bu komutta listelenen alanlardan oluşan kayıtları eklemek mümkün olacaktır.

Test_11.php listeleme. Veritabanında yeni bir masa oluşturan bir program:

"config.php"; // sunucuya ve veritabanı seçimine bağlayın

mysql_query ("İnsanlar yoksa masa oluşturun

iD INT Auto_increment Primer Anahtarı,

veya ölmek ("mysql hatası:" .mysql_error ());



Bu komut dosyası iki alanlı yeni bir insan tablosu oluşturur. İlk alanın bir int tipi (tamsayı) ve isim kimliği vardır. İkinci - Tipi metin (metin dizgisi) ve isim adı.

Tablo varsa, veya ölülerin tasarımı () çalışacaktır.

İsteğe bağlı ifade, eğer değilse, belirtilirse, eğer belirtilirse, MySQL Server, belirtilen adı olan tabloda zaten veritabanında bulunursa bir hata iletisi oluşturmaması gerektiğini söylüyor.

MySQL, ilişkisel veritabanlarının türlerinden biridir. MySQL, çeşitli kullanıcıların bağlanabileceği bir sunucudur.

İnternete bağlandığınızda, giriş ve şifreyi ve bağlandığınız sunucunun adını girersiniz? MySQL ile çalışırken, aynı sistem kullanılır.

Başka bir nokta: İlişkisel bir veritabanı nedir? Tablolara dayanarak ilişkisel araçlar. Microsoft'un ünlü Excel elektronik masa editörü aslında ilişkisel veritabanlarının editörüdür.

MySQL sunucusuna bağlanın

MySQL sunucusuna bağlanmak için MySQLI_CONNECT () işlevi PHP'de kullanılır. Bu özellik, üç argüman alır: sunucu adı, kullanıcı adı ve şifre.

MySQLI_Connect () işlevi bağlantı tanımlayıcısını döndürür, bir değişkene kaydedilir ve veritabanlarıyla çalışmak için kullanılır.

MySQL sunucusuna bağlantı kodu:

$ link \u003d mysqli_connect ("localhost", "kök", "");

Bu durumda, DEVERE'deki yerel bir bilgisayarda çalışıyorum, bu nedenle ana bilgisayar adı yerelhost, kök kullanıcının adı ve şifre değil.

MySQL ile çalışmayı tamamladıktan sonra bağlantının kapanması gerekir. Bağlantıyı kapatmak için MySQLI_Close () işlevi kullanılır. Genişlet Örnek:

$ link \u003d mysqli_connect ("localhost", "kök", ""); eğer (! $ link) ölürse ("hata"); mysqli_close ($ link);

Burada, gerçeği için tanımlayıcıyı doğruladık, eğer bir şey bağlantımızda yanlışsa, program yürütülmeyecek, kalıp () işlevi yürütülmesini durdurur ve tarayıcıya bir hata mesajı görüntüler.

Bağlantı hataları

Bağlantıyı kontrol etmek için aşağıdaki işlevler kullanılır:

  • mysqli_connect_errno () - Son bağlantı girişiminin hata kodunu döndürür. Hata olmadan sıfır döndürmez.
  • mysqli_connect_error () - Son bağlantı hatasının açıklamasını MySQL sunucusuna döndürür.
Tanımlayın ("Host", "Localhost"); Tanımlayın ("db_user", "root"); Tanımlayın ("db_password", ""); Tanımlayın ("db", "tester"); $ link \u003d mysqli_connect (ana bilgisayar, db_user, db_password, db); / * Bağlantıları kontrol etme * / if (mysqli_connect_errno ()) (printf ("bağlanamadı:% s \\ n", mysqli_connect_Error ()); Exit ();) Başka (Printf ("Bağlanmayı başardı) , mysqli_get_host_info ($ link));)

Mysqli_get_host_info () işlevi, kullanılan bağlantı türünü içeren bir dize döndürür.

Ayrıca, Tanımlama komutunu kullanarak, tüm bağlantıları sabit olarak kaydettim. Büyük projeler yazdığınızda ve MySQL sunucusuna bağlandığınızda, birçok dosya olacak, bağlantı ayarlarını ayrı bir dosyada saklamak ve dahil etmek için eklemek veya işlevi kullanmak uygundur.

Veritabanı seç

MySQL Server'ın birkaç veritabanına sahip olabilir. Her şeyden önce, ihtiyacımız olan üssü çalışmayı seçmemiz gerekir. PHP'de, bunun için MySQLI_Connect () işlevinde, başka bir parametre var - veritabanının adı.

Bilgisayarımda tester adlı phpmyadmin ile oluşturdum. Buna bağlanın:

$ Link \u003d mysqli_connect ("localhost", "kök", "", "Tester"); eğer (! $ link) ölürse ("hata"); Mysql_close ($ link);

Yani, veritabanını çalıştırmayı seçtik. Ancak bildiğimiz gibi, ilişkisel veritabanı tablolardan oluşur ve veritabanımızda henüz tablo yoktur. Veritabanı, tablolar olmadan boşaltılır. İçindeki tabloların ayrı olarak eklenmesi gerekir. İşte php ile bir masa ekleyelim.

Masa oluşturmak

MySQL veritabanları adına, SQL kısmı yapılandırılmış bir sorgu dili olarak çevrilen yapılandırılmış sorgu dilini gösterir. SQL dilinde, MySQL sunucusuna göndermek için istekleri ve PHP programından yazacağız.

Bir tablo oluşturmak için, sadece tablo oluştur komutunu belirtmemiz gerekir. Sütunlardaki kullanıcıların adlarına bir tablo oluşturalım (giriş sütunu) ve şifreler (şifre sütunu) kullanıcıları.

$ Query \u003d "Tablo kullanıcıları oluşturun (giriş varchar (20), şifre varchar (20))";

Bu kodda, bir SQL sorgusu olan metin dizgisine $ sorgu değişkenini atadık. Her iki varchar veri tipinde (20) iki sütun girişi ve şifresini içeren kullanıcıların adına sahip bir tablo oluştururuz. Daha sonra veri türleri hakkında konuşacağız, şimdi Varchar'in (20) maksimum 20 karakter uzunluğunun bir dizi olduğunu not edeceğim.

İsteğimizi MySQL Server'a göndermek için MySQLI_QUERY () PHP işlevini kullanıyoruz. Bu özellik, eğer işlem başarılı bir şekilde ve false olursa pozitif bir numara döndürür (sorgu sözdizimi hatalı veya programın sorguyu yürütme hakkı yoktur).

$ Link \u003d mysqli_connect ("localhost", "kök", "", "Tester"); eğer (! $ link) ölürse ("hata"); $ Query \u003d "Tablo kullanıcıları oluşturun (giriş varchar (20), şifre varchar (20))"; Mysqli_query ($ sorgu); mysqli_close ($ link);

SQL sorgusu değişkende kaydetmek için gerekli değildir, MySQL_QUERY () işlevinin argümanı olarak hemen yazılabilir. Sadece kod okunaklı olacak.

Bu komut dosyasının bir dezavantajı vardır - tarayıcıya hiçbir şey geri çekmez. Bir mesaj ekleyelim:

$ Link \u003d mysqli_connect ("localhost", "kök", "", "Tester"); eğer (! $ link) ölürse ("hata"); $ Query \u003d "Tablo kullanıcıları oluşturun (giriş varchar (20), şifre varchar (20))"; Eğer (mysqli_query ($ sorgu)) echo "Tablo Oluşturuldu."; Else echo "Tablo yaratılmadı."; mysqli_close ($ link);

Bu komut dosyasını yürütme için yeniden başlatırsak, tarayıcıda bir mesaj göreceğiz: "Tablo oluşturulmadı." Gerçek şu ki, masanın ilk başladığınızda oluşturulması ve aynı ada sahip bir tablo oluşturmak mümkün değildir. Bir hata durumuyla karşılaştık, MySQL ile çalışırken hata işleme hakkında konuşma zamanı geldiğimiz anlamına gelir.

Hata işleme

Programı hata ayıkladığında, doğru hata bilgilerine ihtiyacımız olabilir. MySQL'de bir hata oluştuğunda, veritabanı sunucusu hata numarasını ve dizgiyi açıklaması ile ayarlar. PHP'de bu verilere erişmek için özel işlevler vardır.

  • mysqli_errno () - hata numarasını döndürür.
  • mysqli_error () - Hata açıklaması olan bir dize döndürür.

Şimdi komut dosyasına mysql_error () işlevini ekleyelim:

$ link \u003d mysql_connect ("localhost", "kök", "", "Tester"); eğer (! $ link) ölürse ("hata"); $ Query \u003d "Tablo kullanıcıları oluşturun (giriş varchar (20), şifre varchar (20))"; Eğer (mysqli_query ($ sorgu)) echo "Tablo Oluşturuldu."; Echo "Tablo oluşturulmadı:" .mysqli_error (); mysqli_close ($ link);

Şimdi betiğimiz tarayıcı dizesine geri dönecek: "Tablo oluşturulmadı:" Kullanıcılar "zaten var".

Tabloyu silmek

Yani, şimdi ihtiyacınız olmayan tabloyu var. Tabloları veritabanından silmeyi öğrenme zamanı.

Tabloyu silmek için, damla tablosu komutunu kullanın, ardından tablo adını kullanın.

$ Link \u003d mysqli_connect ("localhost", "kök", "", "Tester"); eğer (! $ link) ölürse ("hata"); $ Query \u003d "Drop table kullanıcıları"; Eğer (! Mysqli_query ($ sorgu)) Echo "Bir tabloyu silme hatası:" .mysqli_error (); Else echo "tablo silindi."; mysqli_close ($ link);

SONUÇLAR

Öyleyse, MySQL'in temellerine ustalaştık. Yapmayı öğrendiklerimiz:

  • MySQLI_CONNECT () işlevini kullanarak MySQL veritabanına bağlanın.
  • MySQLI_Close () işlevini kullanarak MySQL Server bağlantısını kapatın.
  • MySQLI_QUERY () işlevini kullanarak MySQL sunucusuna SQL istekleri gönderin.
  • SQL sorgusunu bir tablo oluşturmayı öğrendik: Tablo oluşturun.
  • Tabloyu silmek için SQL isteğini öğrendik: bırakma tablosu.
  • Mysqli_errno () ve mysqli_error () işlevlerini kullanarak hataların nasıl işleneceğini öğrendik.

O zaman MySQL verilerinin türlerini ayrıntılı olarak düşüneceğiz.

Aşağıdaki dersi okuruz:

Kod örnekleri ile PHP ile MySQL'e bağlanma yöntemleri


MySQL veritabanını kullanmaya başlamak için önce, kullanıcı PHP programınızdan (komut dosyası) bu MySQL veritabanına nasıl bağlanacağınızı anlamanız gerekir.

Bu makalede, aşağıdaki üç yöntemin yanı sıra, PHP kodunun ilgili örneklerinin yanı sıra, veritabanınıza nasıl PHP'den nasıl bağlanılacağını açıklar.

Aşağıdaki tüm örnekler için, zaten mevcut bir MySQL veritabanına bağlanacağız. Not: Burada açıklanan tek şey de MariaDB ile ve MySQL ile birlikte çalışacaktır.

1. MySQLI uzantısını kullanarak PHP'ye bağlanın
*mysqli mysql gelişmiş anlamına gelir

Aşağıdaki mysqli.php dosyasını oluşturun

connect_Error) (Die ("Hata: Bağlanamıyor:". $ Conn--\u003e Connect_Error);) Veritabanına bağlı.
"; $ Sonuç \u003d $ Conn-\u003e Sorgu (" Goroda'dan Seç "); Echo" Satır Sayısı: $ Sonuç-\u003e Num_rows "; $ Sonuç-\u003e Kapat (); $ Conn-\u003e Close ();?\u003e Yukarıdaki kodda:

  • mySQLI - Bu özellik MySQLI uzantısını kullanarak yeni bir bağlantı başlatır. İşlev dört argüman alır:
    1. mySQL veritabanının çalıştığı localhost ana bilgisayar adı
    2. İsim - Bağlantı için MySQL Kullanıcı Adı
    3. mySQL kullanıcısı için Pass - Şifre
    4. dB - Bağlantı için MySQL veritabanı.
  • qVERY - MySQL sorgu işlevi. Bu örnekte, şehirler veritabanından bir sütun kimliği seçiyoruz.
  • Son olarak, sonuç olarak NUM_ROWS değişkenini kullanarak seçilen satır sayısını gösteririz. Hem sonucu hem de bağlantı değişkenini yukarıda gösterildiği gibi kapatıyoruz.
Yukarıdaki mysqli.php'i tarayıcınızdan aradığınızda, PHP'nin MySQL veritabanına bağlanmayı ve veri alabileceğini gösteren aşağıdaki çıktıyı göreceksiniz.

Veritabanına bağlı. Satır Sayısı: 6 2. PHP MySQL PDO uzantısından bağlanın
*PDO PHP veri nesneleri anlamına gelir

PDO_MYSQL sürücüsü PHP komut dosyanızdan MySQL veritabanına bağlanmak için PHP tarafından sağlanan PDO arayüzünü uygular.

Aşağıdaki mysql-pdo.php dosyasını oluşturun:

setattribute (PDO :: attr_errmode, PDO :: errmode_exception); Echo "Veritabanına bağlı.
"; $ SQL \u003d" Goroda'dan Kimliğini Seç "; yazdır" liste kimliği:
"; Foreach ($ conn--\u003e query ($ SQL) $ olarak ($ \u200b\u200bSQL) ($ SQL) ($ Satır [" ID]. "
";) $ Conn \u003d null;) yakalamak (yankı" hatası: bağlanılamıyor: ". $ Err-\u003e getmessage ();)?\u003e Yukarıdaki:

  • yeni PDO - Aşağıdaki üç argümanı alacak olan yeni bir PDO nesnesi oluşturun:
    1. mySQL Connect String: "MySQL: Host \u003d localhost; dbname \u003d db" biçiminde olacaktır. Yukarıdaki örnekte, DB LocalHost'ta çalışır ve DB veritabanına bağlanırız.
    2. Bağlantı için MySQL adı
    3. MySQL Kullanıcı Şifresi
  • değişken $ SQL - Gerçekleştirmek istediğiniz bir SQL sorgusu oluşturun. Bu örnekte, şehir masasından bir sütun kimliği seçiyoruz.
  • sorgu ($ sql). İşte yeni yarattığımız SQL isteğini yapıyoruz.
  • her biri için. Burada, sonuçları yukarıdaki sorgu komutundan çıkardık ve $ satır değişkenine kaydederiz ve ardından yankı kullanarak çıktılar.
  • MySQL PDO'da bağlantıyı kapatmak için, $ Conn değişkenini NULL olarak ayarlayın.
Yukarıdaki mysqli.php komut dosyasını tarayıcınızdan aradığınızda, aşağıdaki satırları göreceksiniz; PHP'nin MySQL veritabanına bağlanabildiği ve bilgi edinmesi gerektiği anlamına gelir.

Veritabanına bağlı. Liste ID: 1 2 3 4 5 6 3. PHP C'DAN BAĞLANTISI MYSQL MySQL

Bu yöntemi yalnızca PHP'nin eski sürümünü kullanırsanız ve bir nedenden dolayı yeni sürüme güncelleyemezsiniz. Bu yöntem yerine, yukarıda gösterilen 3 numaralı metod ve yöntem kullanılması önerilir. Bu yöntemi sadece referans için açtım ve kullanım önerisi olarak değil.

Bu özel uzatma, PHP 5.5'ten modası geçmiştir. Ancak, PHP 7.0 sürümünden başlayarak, kaldırıldığı için işe yaramayacaktır. PHP 5.5 ile başlayarak, bu işlevleri kullandığınızda, bir e_deprecated hata oluşturur.

Mysql.php oluşturmak:

"; $ sonuç \u003d mysql_query (" Goroda'dan Seç "); $ row \u003d mysql_fetch_row ($ sonuç); echo" id 1: ", $ satır,"
\\ n "; mysql_close ($ inn);?\u003e Yukarıdaki:\u003e

  • MySQL_Connect özelliği üç argüman alır:
    1. mySQL veritabanının çalıştığı ana bilgisayar adı;
    2. bağlantı için MySQL kullanıcı adı;
    3. mySQL kullanıcısı için şifre. Burada, kullanıcı adı ve şifreyi kullanarak yerel sunucuda gerçekleştirilen MySQL veritabanına bağlanır.
  • Mysql_select_db işlevi. Adın ardından, bağlanmak istediğiniz veritabanını seçer. "Kullan" komutuna eşdeğerdir. Bu örnekte, DB veritabanına bağlanırız.
  • MySQL_Query işlevi, MySQL sorgunuzu belirtmek için kullanılır. Bu örnekte, şehirler veritabanından bir sütun kimliği seçiyoruz.
  • mysql_fetch_row. Yeni oluşturduğumuz SQL sorgusundan satırları çıkarmak için bu özelliği kullanın.
  • Son olarak, yukarıda gösterildiği gibi MySQL_Close komutunu kullanarak bağlantıyı kapatın.
Yukarıdaki mysql-legacy.php'i tarayıcınızdan aradığınızda, PHP'nin MySQL veritabanına bağlanmayı ve bilgi alabileceğini gösteren aşağıdaki çıktıyı göreceksiniz:

Veritabanına bağlı. ID 1: 1 Bu şekilde MySQL'e bağlanabilir. Tekrar ediyorum, ilk iki yolu kullanmak daha iyidir; hakkında

Bu yazıda, SQL sorgu dilini kullanarak bu MySQL'e bu MySQL'e erişmenin yollarını göz önünde bulunduracağız. SQL, "ortaya çıkan" olan bir kısaltmadır - yapılandırılmış bir sorgu dilidir.
PHP dilinde, "MySQL" öneki ile birkaç fonksiyon vardır. Talepler göz önünde bulundurularak onlara ihtiyacımız olacak. PHP dilinde olan işlev, SQL sorgularının yürütülmesi sadece imkansız olacaktır:

Kaynak mysql_query

Bu özellik bir veritabanı talebi gönderir ve başarılı bir dolaşım varsa kaynak tanımlayıcısını döndürür.
MySQL veritabanına bağlanmak için aşağıdaki sırayı gerçekleştirmelisiniz:

$ Ev sahibi \u003d "localhost"; // ana bilgisayar adı (sağlayıcıyla belirtilen) $ veritabanı \u003d "db_name"; // $ user \u003d "user_name" oluşturmanız gereken veritabanı adı; // belirttiğiniz kullanıcı adı veya sizin tarafınızdan tanımlanan bir $ pswd \u003d "your_pass" sağlayıcısı; // şifre, $ dbh \u003d mysql_connect ($ ev sahibi, $ user, $ pswd) veya ölü ("MySQL'e bağlanamıyorum"); Mysql_select_db ($ veritabanı) veya ölümü ("Veritabanına bağlanamıyorum.");

yani mysql_connect ()- Hostinginizde MySQL Server'a bağlanma işlevi.
FAKAT mysql_select_db () Bağlantı sunucusundaki veritabanını seçer.
Başka bir deyişle, sunucuya bağlanır, veritabanını seçin ve çalışmaya başlayın.
Bir hata, tarayıcı penceresine belirttiğiniz mesajı görüntülerse, Die () işlevi çağrılır.
Fonksiyon, veritabanları ile tamamlamak için kullanılır:

Mysql_close ($ dBH);

Buraya $ dbh. - Bağlantılı bir fonksiyona geri döndüğünde tanımlayıcı mysql_connect..
Başlangıç \u200b\u200bincelemesini bitirdikten sonra, SQL sorgusunun kendisini düşünmeye başlayalım.
Bunu yapmak için, her şeyden önce, belirli bir adla bir veritabanı oluşturmanız gerekir. Ve içinde, belirli bir adla da bir masa oluşturun. Örneklerimizde masaya başvuracağız my_sql_table. Bu tabloyu oluşturmak için, localhost'umuzu phpmyadmin'de çalıştıralım.

Masa oluşturun `my_sql_table` (int null değil, // tanımlayıcısı gelecekteki masa kayıtlarının ilk adı 'varchar (50) , // metin alanı varchar` soyadı' varchar (50) null değil, // max 50 karakter uzun primer anahtar ( `id ') // birincil anahtar - kimlik tanımlayıcısı);

Yani masa oluşturulur. İlk talebi çalıştıracağız, bu da derhal bir PHP kodu biçiminde yayınlayacağız:

\\ n "; echo" adı: "$ satır [" FirstName "]."
\\ n "; echo" Soyadı: "$ Row [" Soyadı "]."


\\ n ";)?\u003e

PHP dosya kodunu analiz edeceğiz firstsql.php.. Veritabanı tablolarına (veritabanı) gerçek sorguyla başlayalım.

$ Query \u003d "'my_sql_table`"' dan SELECT *;

Bu istek şifresi çözülebilir: Tablodan seçim yapın my_sql_table Tüm alanlardan gelen tüm girişler. Böylece işareti * Kelime seçiminden sonra "Kesinlikle her şeyi seç" anlamına gelir. Böylece istek oluşur. Şimdi yürütülmelidir:

$ res \u003d mysql_query ($ sorgu);

Sorgu işlevinin başarılı bir şekilde yürütülmesi durumunda mysql_query () Bize bir kaynak tanımlayıcısını döndürür $ Res..
İşlev için bir parametre olarak aktarılmalıdır mysql_fetch_array (). Bu fonksiyonun adı kendisi için konuşur. Şunlar. Veritabanı tablosundan örnek olarak bir dizi oluşturur ve verir. Masamızda, dizi tablodaki kayıt sayısına (dizeler) eşit bir sayıdan oluşacak ve değerler içerecektir. iD, FirstName, Soyadı Tablonun her satırı için. Bu nedenle, aşağıdaki kod:

($ Row \u003d mysql_fetch_array ($ res)) (yankı "numarası:". $ Satır ["id"]. "
\\ n "; echo" adı: "$ satır [" FirstName "]."
\\ n "; echo" Soyadı: "$ Row [" Soyadı "]."


\\ n ";)

bununla ilgili yorum yapabilirsiniz: ABD tarafından girilen $ satır değişkenleri sıfır işlem sonuçları almaz mysql_fetch_row Tarayıcıda bir alan değeri vermelisiniz $ satır ["id"], $ satır ["firstname"], $ satır ["Soyadı"] üzerinden eko..
Sorgu böyle yapılırsa:

$ Query \u003d "" my_sql_table "dan FirstName'ı seçin;

bu, yalnızca ilk isim alanının değerlerinin tüm satırlardan seçileceği anlamına gelecektir.
Sonuç olarak, önceki kod şu şekilde yeniden yazılmalıdır:

$ res \u003d mysql_query ($ sorgu); İken ($ row \u003d mysql_fetch_array ($ res)) (yankı "adı:". $ Row ["FirstName"]. "
\\ n ";)

Belirli bir değere sahip bir masa çizgisi seçmek istiyorsanız İD Soyadı nerede (soyadı) olacak Petrovİstek aşağıdaki gibi yeniden yazacaktır:

$ Query \u003d "SOURNAME \u003d" Petrov "", "my_sql_table" adlı kimliğinden seçin.

Ancak, numara altında olanın soyadını bilmeniz gerekirse, örneğin, 5, daha sonra istek böyle olacaktır:

$ Query \u003d "Soyadı 'my_sql_table` adresinden Soyadı, nerede id \u003d 5";

Bu durumda, sorgunun sonucunun masadan sadece bir satır olacağını biliyorsunuzdur. Şunlar. Kullanarak bir döngü organize etmek mantıklı değil süre. Ve sorgu işleme aşağıdaki olacaktır

$ res \u003d mysql_query ($ sorgu); $ row \u003d mysql_fetch_row ($ res); Echo "Listedeki Beşinci Kişinin Soyadı:". $ Sıra. "\\ N";

Burada mysql_fetch_array () yerine mysql_fetch_row (). Şunlar. Belirli bir dizgenin alan değerini (veya alanlarını) alın. Bir alanımız olduğundan - Soyadı - Soyadı - $ ROW Dizisinin tek elemanına başvurabiliriz. $ satır;.

Öyleyse, MySQL sorgularının en tipik örneklerini göz önünde bulundurun. Göz önüne alınarak masanın temelinde harcayacak my_sql_table:
1. My_sql_table table Middle_Name alanına (Patronymic) ekleyin soyadı.:

$ Query \u003d "Alter table` my_sql_table` ekle 'middle_name`
Varchar (50) null "soyadı"

2. Şimdi SOname alanını My_SQL_Table tablosundan silin:

$ Query \u003d "ALTER TABLE` my_sql_table` damla `soyadı";

3. My_sql_table tablosundaki girişleri soyadı ile silin:

$ Query \u003d "Sarname \u003d" SoDorov "" nice 'my_sql_table`den silin.

4. Eşitlik belirtilerine ek olarak, "daha" veya "daha az", MySQL isteklerinin dilinde bir kavram var " benzer". My_sql_table tablosundan kayıtları seçin, soyadında bulunur" dor." :

$ Query \u003d "" my_sql_table 'seçeneğinden * "% dor%" gibi soyadın olduğu;

İşte varlığı " % "" Dor "ın başlangıcında ve sonunda ve isteğin tam olarak" dor "arayacağı anlamına gelir ve başlangıçta, geç veya bulunduğu soyadın ortasında önemli değil. Aşağıdaki örneği düşünün
5. My_sql_table tablosundan, başlayan soyadı ile kayıtları seçin. P. Konuma dikkat edin " % ":

$ Query \u003d "'my_sql_table' nin" P% "gibi soyadın olduğu;

6. Maksimum değeri hesaplayın. İD:

$ Query \u003d "My_sql_table`" dan MAX (ID) öğesini seçin;

7. My_sql_table'deki alan sayısını, başlayan soyadı ile hesaplayın. P.

$ Query \u003d "" P% "gibi soyadın" my_sql_table` 'dan COUNT (*)' ı seçin.

8. My_sql_table tablosunu silme:

$ Query \u003d "Drop table` my_sql_table`";

PHP dilinde 1-3 sorgular için, talebi yürütmek için yeterlidir:

Mysql_query ($ sorgu);

İsteklerin en karakteristik örneklerini inceledik. Esnek mantığın ardından, Yardımlarıyla, yarattığınız MySQL veritabanı tablolarına daha karmaşık talepler yapabilirsiniz.




Hala sorular ya da anlaşılmaz bir şey var - bizim için hoş geldiniz