Php'yi kullanmak...

Farklı şekillerde bağlantı oluşturma:

1) MySQL'e bağlanmanın eski moda yolu:

$conn=mysql_connect($db_hostname, $db_username, $db_password) or die ("Sunucuya bağlantı yok");
mysql_select_db($db_database,$conn) or die ("Hayır, veritabanına bağlanmak mümkün olmadı");

Aşağıdaki değişkenlerin açıklamaları.

Aşağıdaki işlevler kullanılır:

  • mysql_connect()- sunucuya bağlanmak için;
  • mysql_select_db()- veritabanına bağlanmak için;

Aynı zamanda hataları şu şekilde sürekli kontrol ediyoruz: veya ölür (“Hata falandır”); - şu veya bu hatayla tercüme edilir veya ölürseniz - hatanın nerede olduğunu hemen bulmak için.

yapılandırma.php

// veritabanına bağlanmak için değişkenler
$anasistem = "yerelanasistem"; /ev sahibi
$kullanıcıadı = "kök"; //veritabanına bağlanmak için şifre
$şifre = ""; // veritabanına bağlanmak için şifre - yerel bilgisayarda boş olabilir.
$database_name = "dolgim"; // veri tabanı ismi

// veritabanına bağlanmanın eski yolu
mysql_connect($host, $kullanıcı adı, $şifre) or die("Bağlanamıyor, bağlantı oluşturulamıyor");

// veritabanını seçiyoruz. Hata varsa çıktı
mysql_select_db($veritabanı_adı) veya die(mysql_error());

index.php

require_once "config.php";


$result = mysql_query("Dolg'dan Para DESC SINIRI 5'E GÖRE SİPARİŞİ SEÇİN") veya die(mysql_error());



";


while ($satır = mysql_fetch_assoc($result)) (
";
}


mysql_free_result($sonuç);

// Bağlantıyı kapat
mysql_close();

2) Daha ilerici bir prosedür stili - mysqli kullanarak veritabanına bağlanma:

Bu method:

  1. uygun;
  2. 40 kata kadar daha hızlı;
  3. yükseltilmiş güvenlik;
  4. yeni özellikler ve işlevler var;

Tablodan seçim yaparak PHP'de bir veritabanına bağlanma örneği

yapılandırma.php

// veritabanına bağlantılar
$bağlantı = mysqli_connect("localhost", "kullanıcı adı", "şifre", "isim-veritabanı"); // buraya doğrudan verilerinizi giriyoruz: kullanıcı adı, şifre ve veritabanı adı, ilk alan genellikle localhost'tur

// çıkış bağlantı hatası
if (!$bağlantı) (
echo "Veritabanına bağlanırken hata oluştu. Hata kodu: " . mysqli_connect_error();
çıkış;
}

Lütfen dikkat - mysqli her yerde kullanılır, mysql değil!!!

index.php

require_once "config.php";

// İsteği yürütün. Bir hata varsa onu gösteririz
eğer ($sonuç = mysqli_query($bağlantı,"Borçtan Paraya Göre Sırala İsim, Parayı Seçin DESC LİMİT 5")) (

Echo "Azalan sırayla kime borçluyum:

";

// Sorgu sonuçları getiriliyor
while ($satır = mysqli_fetch_assoc($sonuç)) (
echo $satır["İsim"] . "borçlu". $row["Para"] . " ruble.
";
}

// kullanılan hafızanın serbest bırakılması
mysqli_free_result($sonuç);

// Bağlantıyı kapat
mysqli_close($bağlantı);
}

Gördüğünüz gibi bazı noktalar değişti (italik olarak).

3) Yöntemleri ve sınıfları kullanarak MySQL veritabanına bağlanmanın nesne yönelimli yöntemi:

Eksileri: Daha karmaşıktır ve hatalara daha az duyarlıdır.

Artıları: deneyimli programcılar için kısalık ve kolaylık.

$bağlantı = new mysqli($db_hostname, $db_username, $db_password, $db_database);
if($bağlantı->connect_errno)(
die($bağlantı->connect_error);
) else (echo "Veritabanı bağlantısı başarıyla kuruldu";)

burada prensip olarak her şey sezgiseldir:

  • $db_anasistem adı: ev sahibi(çoğunlukla localhost),
  • $db_veritabanı - veritabanı adı;
  • $db_username ve $db_password - sırasıyla kullanıcı adı ve şifre!

Bir tablodan örnekleme ile php OOP tarzında bir veritabanına bağlanma örneği

yapılandırma.php

// veritabanına bağlantılar
$mysqli = new mysqli("localhost", "kullanıcı adı", "şifre", "isim-veritabanı"); // buraya doğrudan verilerinizi giriyoruz: kullanıcı adı, şifre ve veritabanı adı, ilk alan genellikle localhost'tur

// çıkış bağlantı hatası
if ($mysqli->connect_error) (
die ("Veritabanı bağlantı hatası: (" . $mysqli->connect_errno . ") " . mysqli_connect_error) ;
}

Lütfen dikkat - mysqli her yerde kullanılır, mysql değil!!! ve önceki yöntemden farklı olarak bunun bir OOP stili olduğunu belirten “->” okları belirir.

index.php

require_once "config.php";

// İsteği yürütün. Bir hata varsa onu gösteririz
eğer ($sonuç = $ mysqli->sorgu("Para DESC LİMİT 5'E GÖRE Borç Sırasından Ad, Para SEÇİN")) (

Echo "Azalan sırayla kime borçluyum:

";

// Sorgu sonuçları getiriliyor
while ($satır = $sonuç-> fetch_assoc()) {
echo $satır["İsim"] . "borçlu". $row["Para"] . " ruble.
";
}

// kullanılan hafızanın serbest bırakılması
$sonuç->kapat();

// Bağlantıyı kapat
$mysqli->kapat();
}

Göreviniz farklılıkları bulmaktır.

4) PDO kullanarak veritabanıyla iletişim:

Bir MySQL veritabanına bağlanırken hazırlanmış ifadeler kullanılır (hazırlama yöntemi kullanılarak) ve sonuç olarak daha fazla güvenlik sağlanır ve performans büyük ölçüde artar.

yapılandırma dosyasıönceki yöntemden! - Aynı

index.php

// MySQL ile iletişim için PDO stili
if ($stmt = $mysqli->prepare("Adınızı Seçin, Dolg'dan Voney ORDER BY Money< ? LIMIT 5")) {

$stmt->bind_param("i", $toplam);
$toplam = 100000;

//yürütmeyi başlat
$stmt->execute();

// Hazırlanan değerler için değişkenlerin bildirilmesi
$stmt->bind_result($col1, $col2);

Echo "Azalan sırayla kime borçluyum:

";

// Sorgu sonuçları getiriliyor
while ($stmt->fetch()) (
yankı $sütun1 . "borçlu". $col2 . " ruble.
";
}

// kullanılan hafızanın serbest bırakılması
$stmt->close();

// Bağlantıyı kapat
$mysqli->close();

Gördüğünüz gibi burada işler çok daha karmaşık ve PDO'yu incelemeniz gerekiyor - bu ayrı bir konu.

Hala ne olduğunu bilmediğim zamanları hatırlıyorum MySQL ve internette bu tür makaleleri sıklıkla aradık. Ancak bazı nedenlerden dolayı nadiren bulundular. Şimdi hakkında faydalı makaleler olsun diye bir tane yayınlamaya karar verdim. MySQL Ve php bir tane daha var. Her şeyi erişilebilir bir dilde yazmaya çalışacağım.

mysql ve php'ye başlarken

Çalıştırabilmek için öncelikle yerel bir sunucuya ihtiyacımız var. php betikleri ve veritabanına bağlanın (bundan sonra ona "veritabanı" anlamına gelen DB diyeceğim). Henüz yerel bir sunucunuz yoksa öncelikle Kurulum ve Yapılandırma bölümünü okumalısınız. yerel ana bilgisayar ve ardından veritabanını incelemeye başlayın MySQL ve DBMS'si (veritabanı yönetim aracı).

Bu sunucunuz zaten varsa, bunu yapın. Öncelikle sizi DBMS ile tanıştırmak istiyorum PhpMyAdmin Veritabanındaki kayıtları yönetmenizi (eklemenizi, silmenizi, değiştirmenizi) sağlar.

Bu ana sayfadır DBMS PhpMyAdmin. Buradan kendi veritabanınızı oluşturabilir ve gerekli kayıtları burada saklayabilirsiniz. Bilgiler yapılandırılmış olduğundan ve veritabanından herhangi bir kaydı çok hızlı bir şekilde alabileceğiniz için bu, web siteleri oluştururken çok kullanışlıdır.

Daha önce de belirttiğimiz gibi makalenin ilk kısmı giriştir. MySQL Ve phpmyadmin. Sanırım artık MySQL'in ne olduğunu anladınız ve phpmyadmin'in işlevselliğini incelemeye başlayabiliriz. Başlamak için veritabanının kendisini oluşturmamız gerekecek. Kendi adı olacak ve daha sonra onu arayacağız.

Veritabanının genel yapısı şu şekildedir:

Bir veritabanı oluşturmak için, "Yeni bir veritabanı oluştur" satırının altındaki (PhpMyAdmin'in ana sayfasında) giriş alanına gelecekteki veritabanı için herhangi bir adı (Kiril değil!) girin. "Baza" adında bir veritabanı oluşturacağım. Şimdi veritabanı yapısı şemasını takip ederek bir tablo oluşturmamız gerekiyor. Bunu yapmak için veritabanını oluşturduktan sonra aşağıdaki pencereye sahip olacaksınız:

Burada kullanıcılar adında bir tablo ve içinde 3 alan oluşturuyorum. Daha sonra phpmyadmin bizden her alan için yapıyı ayarlamamızı isteyecek:

Burada “Alan” sütununda adı belirtmeniz gerekir, “Tip”te orada depolanacak veri türünü belirtiriz (INT bir sayıdır, VARCHAR bir dize veya küçük(!) metindir). “Gelişmiş”te “id” adlı alana “auto_increament” parametresini belirtiyoruz, yani her veri eklediğinizde artacaktır ve buna “Birincil anahtar” parametresini (bir daire koyun) ayarlıyoruz, bu şu anlama geliyor: ilk sütuna göre alanı benzersiz bir şekilde tanımlayabiliriz.

“Alanı benzersiz şekilde tanımla”, ad ve soyadı aynı olsa bile “id” sütununun farklı değerlere sahip olacağı anlamına gelir (çünkü her seferinde otomatik olarak bir artırılır).

Şimdi “Kaydet”e tıklayın. Böylece, kullanıcı veritabanında adını ve soyadını (kimlik eklemeye gerek yok, mysql bizim için her şeyi yapacak) saklayabileceğimiz kullanıcılar tablosunu oluşturduk. Kayıtların saklanacağı bir tablo oluşturduk. Onları oraya nasıl ekleyebilirim? Aşağıyı okuyun 😉

Menüden “Ekle” seçeneğini seçin ve gerekli alanlara gerekli değerleri yazın. Şimdi PhpMyAdmin DBMS ile mysql veritabanındaki değerler nasıl silinir veya değiştirilir... Silmek için “Gözat” menüsüne gidin ve girişin yanındaki kırmızı çarpı işaretine tıklayın:

Düzenlemek için kaleme tıklayın ve gerekli alanları değiştirin. Neyse bu dersin sonu. Artık PhpMyAdmin'i kullanarak MySQL veritabanını yönetebilirsiniz. Bir sonraki derste size veri tabanındaki verileri nasıl saklayacağınızı, alacağınızı, sileceğinizi ve güncelleyeceğinizi öğreteceğim. php kullanmak. Çok kullanışlı ve pratiktir.

Php'den MySQL veritabanıyla çalışma

Bu nedenle, öncelikle önceden oluşturulmuş bir veritabanına nasıl bağlanacağınızı öğrenmeniz gerekir. Bunu yapmak için aşağıdaki kodu kullanın:

Yukarıdaki kodda, oturum açma bilgilerini kullanarak localhost sunucusuna bağlandım. kökşifre gerektirmez (bu yüzden belirtmiyoruz). Veritabanına bağlandıktan sonra phpmyadmin DBMS'de yaptığımız tüm işlemleri gerçekleştirebiliyoruz. Yani çeşitli bilgilerin eklenmesi, silinmesi, değiştirilmesi ve alınması. Şimdi nokta nokta:

Php'de SQL veritabanına kayıt ekleme

$query="INSERT INTO `tablo` ("alanı belirtin`,`alanı belirtin`) VALUES ("herhangi bir değer", "herhangi bir değer""); $result=mysql_query($query); if($result==true) ( ​​​echo "Başarılı!"; ) else ( echo "Hata!
".MySQL Hatası(); )

Yani ekleme işlemi INSERT fonksiyonu tarafından gerçekleştirilir. Her şey yolunda giderse, MySQL sonucu doğru, aksi takdirde yanlış olarak döndürür.

İstediğiniz kadar alan belirleyebilirsiniz, asıl önemli olan hepsinin veritabanında mevcut olmasıdır. Yani örneğin “ad”, “soyadı” ve “şehir” alanlarının bulunduğu bir tablo var. Değerleri içine eklemek için aşağıdaki kodu kullanacağız:

$query="INSERT INTO `users` (`ad`,`soyadı`,`şehir`) VALUES ("Ruslan", "Huzin", "Kokshetau""); $result=mysql_query($query); if($result==true) ( ​​​echo "Başarılı!"; ) else ( echo "Hata!
".MySQL Hatası(); )

Php'de SQL veritabanındaki kayıtları silme

Silme işlemi DELETE fonksiyonu kullanılarak gerçekleştirilir. Bunun kodu şöyle bir şey olacaktır:

$query="`users` WHERE `name`="Ruslan'dan SİL" "; $result=mysql_query($query); if($result==true) ( ​​​echo "Başarılı!"; ) else ( echo "Hata!
".MySQL Hatası(); )

Yani, ad sütununun Ruslan değerine eşit olduğu tüm satırları (veya birini) kullanıcı tablosundan sileceğiz.

Php'de MySQL veritabanındaki değerleri değiştirme

Ayrıca tablodaki mevcut girişlerde de değişiklik yapabiliriz. Örneğin soyadı sütununda Huzin değerinin olduğu bir satırda ad sütununun değerini değiştirmemiz gerekiyor. Bunu yapmak için aşağıdaki kodu çalıştırıyoruz:

$query = "UPDATE `users` SET `name` =myname" WHERE `soyadı` = "Huzin" "; $result=mysql_query($query); if($result==true) ( ​​​echo "Başarılı!"; ) else ( echo "Hata!
".MySQL Hatası(); )

Veritabanından değer alma

Şimdi işin eğlenceli kısmı geliyor. Bir şeyler yazdığımıza göre onu geri almalıyız, değil mi? Örneğin, ad sütununun Ruslan'a eşit olduğu kullanıcılar tablosundan satırın tamamını almamız gerekiyor. Bunu yapmak için ilk örneklerdekinden biraz farklı bir koda ihtiyacımız var. İşte burada:

$query="SELECT * FROM WHERE `name`="Ruslan" "; $result=mysql_query($query); if($result==true) ( ​​​echo "Başarılı!"; ) else ( echo "Hata!
".mysql_error(); ) $data=mysql_fetch_array($result); /* Artık değişken tablodaki verileri saklıyor */

Burada seçilen verileri php'deki bir değişkene (diziye) yazmak için bir fonksiyona daha ihtiyacımız vardı. Seçilen satıra erişmek için şöyle yazıyoruz:

$veri["sütun adı"]

yani, seçilen satırdan soyadını almak için (adın Ruslan olduğu yerde), çıktı olarak yazmalıyız:

echo $veri["soyadı"];

Ve bir tablodan seçim yaparken SELECT * yazmışlar, bu yıldız işareti satırdaki tüm sütunları seçmeniz gerektiği anlamına geliyor. Örneğin sadece soyadı seçmemiz gerekiyorsa SELECT `soyadı` yazıyoruz. Tablodan aynı anda birkaç satır seçmek için bunları görüntüleyecek bir döngüye de ihtiyacınız olacak. Örneğin Ruslan sütununda birkaç satır varsa bu durum geçerlidir. İşte kod:

$query="SELECT * FROM WHERE `name`="Ruslan" "; $result=mysql_query($query); while($data=mysql_fetch_array($result)) ( echo $veri["isim"]."
".$data["soyadı"]."


"; }

Artık ad sütunu Ruslan değerine eşit olan tüm satırlar ekranda görüntülenecektir.

Artık temel kontrol fonksiyonlarına aşina oldunuz MySQL veritabanı doğrudan php betiği.

MySQL bir tür ilişkisel veritabanıdır. MySQL, çeşitli kullanıcıların bağlanabileceği bir sunucudur.

İnternete bağlandığınızda kullanıcı adınızı, şifrenizi ve bağlandığınız sunucunun adını giriyor musunuz? MySQL ile çalışırken aynı sistem kullanılır.

Bir şey daha: ilişkisel veritabanı nedir? İlişkisel, tablolara dayalı anlamına gelir. Microsoft'un ünlü elektronik tablo düzenleyicisi Excel, aslında ilişkisel bir veritabanı düzenleyicisidir.

MySQL sunucusuna bağlanma

PHP'de bir MySQL sunucusuna bağlanmak için mysqli_connect() işlevini kullanın. Bu işlev üç bağımsız değişken alır: sunucu adı, kullanıcı adı ve parola.

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

MySQL sunucusu bağlantı kodu:

$bağlantı = mysqli_connect("localhost", "root", "");

Bu durumda, Denwere'de yerel bir makine üzerinde çalışıyorum, dolayısıyla ana bilgisayar adı localhost, kullanıcı adı root ve şifre yok.

MySQL ile çalışmayı bitirdikten sonra bağlantının da kapatılması gerekiyor. Bağlantıyı kapatmak için mysqli_close() işlevi kullanılır. Örneği genişletelim:

$bağlantı = mysqli_connect("localhost", "root", ""); if (!$link) die("Hata"); mysqli_close($bağlantı);

Burada bağlantı tanımlayıcısının doğruluğunu kontrol ettik; bağlantımızda bir sorun varsa program yürütülmeyecek, die() işlevi yürütmeyi durduracak ve tarayıcıda bir hata mesajı görüntüleyecektir.

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 yoksa sıfır değerini döndürür.
  • mysqli_connect_error() - MySQL sunucusuna yapılan son bağlantı hatasının açıklamasını döndürür.
define("HOST", "localhost"); define("DB_USER", "root"); define("DB_PASSWORD", ""); define("DB", "test cihazı"); $bağlantı = mysqli_connect(HOST, DB_USER, DB_PASSWORD, DB); /* bağlantıyı kontrol edin */ if (mysqli_connect_errno()) ( printf("Bağlantı kurulamıyor: %s\n", mysqli_connect_error()); çıkış(); ) else ( printf("Bağlantı başarılı: %s\n" , mysqli_get_host_info($bağlantı)); )

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

Ayrıca define komutunu kullanarak tüm bağlantı parametrelerini sabit olarak kaydettiğimi unutmayın. Büyük projeler yazdığınızda ve MySQL sunucusuna bağlanan çok sayıda dosya olduğunda, bağlantı parametrelerini ayrı bir dosyada saklamak ve include veya require işlevini kullanarak eklemek uygundur.

Veritabanı Seçmek

Bir MySQL sunucusu birden fazla veritabanına sahip olabilir. Öncelikle çalışmamız gereken tabanı seçmemiz gerekiyor. PHP'de mysqli_connect() işlevinde bunun için başka bir parametre daha vardır; veritabanı adı.

Bunu bilgisayarımda phpMyAdmin aracılığıyla tester adı ile oluşturdum. Ona bağlanalım:

$bağlantı = mysqli_connect("localhost", "root", "", "test cihazı"); if (!$link) die("Hata"); mysql_close($bağlantı);

Bu yüzden birlikte çalışacağımız bir veritabanı seçtik. Ancak bildiğimiz gibi ilişkisel bir veritabanı tablolardan oluşur ve veritabanımızda henüz tablolar bulunmamaktadır. Veritabanı tablolar olmadan boş olarak oluşturulmuştur. Tabloların ayrı ayrı eklenmesi gerekir. Şimdi buna PHP kullanarak bir tablo ekleyelim.

Bir tablo oluştur

MySQL veritabanlarının adında SQL kısmı, yapılandırılmış sorgulama dili olarak tercüme edilen Yapılandırılmış Sorgu Dili anlamına gelir. SQL'de sorgular yazacağız ve bunları PHP programından MySQL sunucusuna göndereceğiz.

Bir tablo oluşturmak için CREATE TABLE komutunu vermemiz yeterlidir. Kullanıcıların giriş bilgilerinin (giriş sütunu) ve şifrelerinin (şifre sütunu) saklanacağı sütunlarda kullanıcılar adında bir tablo oluşturalım.

$query = "CREATE TABLE kullanıcıları(giriş VARCHAR(20), şifre VARCHAR(20))";

Bu kodda, $query değişkenine bir SQL sorgusunu temsil eden bir metin dizesi atadık. Her ikisi de VARCHAR(20) veri türünde iki sütun kullanıcı adı ve parola içeren, kullanıcılar adında bir tablo oluşturuyoruz. Veri tiplerine daha sonra değineceğiz, şimdilik sadece VARCHAR(20)'ın maksimum 20 karakter uzunluğunda bir string olduğunu belirteceğim.

Sorgumuzu MySQL sunucusuna göndermek için PHP'nin mysqli_query() fonksiyonunu kullanıyoruz. Bu işlev, işlem başarılıysa pozitif bir sayı döndürür ve bir hata oluştuğunda (istek sözdizimi yanlışsa veya programın isteği yürütme izni yoksa) yanlış bir sayı döndürür.

$bağlantı = mysqli_connect("localhost", "root", "", "test cihazı"); if (!$link) die("Hata"); $query = "CREATE TABLE kullanıcıları(giriş VARCHAR(20), şifre VARCHAR(20))"; mysqli_query($query); mysqli_close($bağlantı);

SQL sorgusunun bir değişkene yazılmasına gerek yoktur; doğrudan mysql_query() işlevine argüman olarak yazılabilir. Sadece kodu daha okunaklı hale getirir.

Bu betiğin bir dezavantajı var; tarayıcıya hiçbir şey vermiyor. Bir mesaj ekleyelim:

$bağlantı = mysqli_connect("localhost", "root", "", "test cihazı"); if (!$link) die("Hata"); $query = "CREATE TABLE kullanıcıları(giriş VARCHAR(20), şifre VARCHAR(20))"; if (mysqli_query($query)) echo "Tablo oluşturuldu."; else echo "Tablo oluşturulmadı."; mysqli_close($bağlantı);

Bu betiği tekrar çalıştırırsak tarayıcıda şu mesajı göreceğiz: "Tablo oluşturulmadı." Gerçek şu ki, tablo ilk lansman sırasında oluşturuldu ve aynı adda bir tablonun tekrar oluşturulması mümkün değil. Bir hata durumuyla karşı karşıyayız, bu yüzden MySQL ile çalışırken hata yönetimi hakkında konuşmanın zamanı geldi.

Hata işleme

Bir programda hata ayıklarken hatayla ilgili kesin bilgilere ihtiyacımız olabilir. MySQL'de bir hata oluştuğunda, veritabanı sunucusu hata numarasını ve açıklamasını içeren bir satırı ayarlar. PHP'nin bu verilere erişmek için özel işlevleri vardır.

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

Şimdi betiğimize mysql_error() fonksiyonunu ekleyelim:

$bağlantı = mysql_connect("localhost", "root", "", "test cihazı"); if (!$link) die("Hata"); $query = "CREATE TABLE kullanıcıları(giriş VARCHAR(20), şifre VARCHAR(20))"; if (mysqli_query($query)) echo "Tablo oluşturuldu."; else echo "Tablo oluşturulmadı: ".mysqli_error(); mysqli_close($bağlantı);

Artık betiğimiz tarayıcıya şu satırı döndürecektir: "Tablo oluşturulmadı: Tablo "kullanıcılar" zaten mevcut."

Bir tabloyu silme

Artık ihtiyacımız olmayan bir masamız var. Veritabanından tabloların nasıl çıkarılacağını öğrenmenin zamanı geldi.

Bir tabloyu bırakmak için DROP TABLE komutunu ve ardından tablo adını kullanın.

$bağlantı = mysqli_connect("localhost", "root", "", "test cihazı"); if (!$link) die("Hata"); $query = "DROP TABLE kullanıcıları"; if (!mysqli_query($query)) echo "Tablo silinirken hata oluştu: ".mysqli_error(); else echo "Tablo silindi."; mysqli_close($bağlantı);

Sonuçlar

Böylece MySQL'in temellerine hakim olduk. Ne yapmayı öğrendik:

  • mysqli_connect() işlevini kullanarak MySQL veritabanına bağlanın.
  • mysqli_close() işlevini kullanarak MySQL sunucusuna olan bağlantıyı kapatın.
  • mysqli_query() işlevini kullanarak SQL sorgularını MySQL sunucusuna gönderin.
  • Tablo oluşturmak için SQL sorgusunu öğrendik: tablo oluştur.
  • Tablo silmek için kullanılan SQL sorgusunu öğrendik: drop table.
  • mysqli_errno() ve mysqli_error() işlevlerini kullanarak hataların nasıl ele alınacağını öğrendik.

Daha sonra MySQL veri türlerine daha yakından bakacağız.

Bir sonraki dersi okuyun:

PHP ARAÇLARIYLA MySQL VERİTABANI İLE ÇALIŞMAK

Ders. Prokhorov V.S. tarafından hazırlanmıştır.


1. PHP SENARYOLARINI MySQL tablolarına BAĞLAMAK

PHP kullanarak MySQL veritabanıyla çalışmanıza olanak tanıyan en sık kullanılan işlevlere bakalım.

PHP ve MySQL etkileşime girdiğinde, program bir dizi işlev aracılığıyla DBMS ile etkileşime girer.

1.1 Sunucuya bağlantı. İşlevmysql_connect

Veritabanıyla çalışmaya başlamadan önce onunla bir ağ bağlantısı kurmanız ve kullanıcıyı yetkilendirmeniz gerekir. Bunun için mysql_connect() fonksiyonu kullanılır.

kaynak mysql_connect(]])

Bu işlev, ana bilgisayar $sunucusunda (varsayılan olarak bu localhost, yani geçerli bilgisayardır) bulunan MySQL veritabanına bir ağ bağlantısı kurar ve açık bağlantının kimliğini döndürür. Daha sonraki tüm çalışmalar bu tanımlayıcıyla gerçekleştirilir. Bu tanımlayıcıyı (tanımlayıcıyı) bağımsız değişken olarak alan diğer tüm işlevler, seçilen veritabanını benzersiz şekilde tanımlayacaktır. Kayıt olurken, kullanıcı adını $kullanıcıadı ve şifreyi $password olarak belirtin (varsayılan olarak, mevcut işlemin çalıştığı kullanıcı adı - komut dosyalarında hata ayıklarken: root ve boş bir şifre):

$dbpasswd = ""; //Şifre

//Bir uyarı göster

Eko("

");

$dblocation, $dbuser ve $dbpasswd değişkenleri sunucu adını, kullanıcı adını ve şifreyi saklar.

1.2 Sunucuyla bağlantının kesilmesi. İşlevmysql_close

Betik tamamlandığında veya mysql_close işlevi çağrıldığında MySQL sunucusuyla bağlantı otomatik olarak kapatılacaktır.

bool mysql_close()

Bu işlev MySQL sunucusuyla bağlantıyı kapatır ve işlem başarılı olursa true, aksi halde false değerini döndürür. İşlev, mysql_connect işlevi tarafından döndürülen veritabanı bağlantı tanıtıcısını bağımsız değişken olarak alır.

$dblocation = "localhost"; //Sunucu adı

$dbuser = "kök"; //Kullanıcı adı

$dbpasswd = ""; //Şifre

//Veritabanı sunucusuna bağlanıyoruz

//Fonksiyonu çağırmadan önce @ sembolüyle hata çıktısını bastırın

$dbcnx = @ mysql_connect($dblocation, $dbuser, $dbpasswd);

if (!$dbcnx) //Tanımlayıcı 0 ise bağlantı kurulmaz

//Bir uyarı göster

Eko("

Veritabanı sunucusu şu anda kullanılamıyor, dolayısıyla sayfa doğru şekilde görüntülenemiyor.");

if (mysql_close($dbcnx)) //bağlantıyı kapatın

echo("Veritabanı bağlantısı sonlandırıldı");

echo("Bağlantıyı tamamlayamadık");

1.3 Veritabanı oluşturma. VERİTABANI OLUŞTUR işlevi

- Veritabanı oluştur komutu yalnızca sunucu yöneticisi tarafından kullanılabilir ve çoğu barındırma sitesinde yürütülemez:

CREATE DATABASEVeritabanıAdı

DatabaseNameadlı yeni bir veritabanı oluşturur.

Bu fonksiyonla çalışmaya bir örnek:

@mysql_query("VERİTABANI OLUŞTUR $dbname");

SQL komutlarını içeren satırlar için sınırlayıcı olarak her yerde kesme işareti (“SQL – komut”) kullanılması önerilir. Bu, hiçbir $ değişkeninin yanlışlıkla enterpolasyona tabi tutulmamasını (yani değeriyle değiştirilmemesini) sağlar ve komut dosyası güvenliğini artırır.

CREATE DATABASE veritabanı oluşturma komutu yalnızca süper kullanıcı tarafından kullanılabilir ve çoğu barındırma sitesinde basit bir kullanıcının bu komutu yürütmesi imkansızdır. Yalnızca sunucu yöneticisi tarafından kullanılabilir.

Denemeler için komut satırından SQL sorgusu çalıştırarak bir testbase veritabanı oluşturalım. Bunu yapmak için MySQL'de oturum açmanız ve MySQL komut satırına girmeniz gerekir:

mysql> veritabanı test tabanı oluştur;

Bundan sonra şunu yazmalısınız:

mysql>testbase'i kullan;

Veritabanı oluşturuldu:


1.4 Veritabanı seçme. İşlevmysql_select_db

MySQL sunucusuna ilk isteği göndermeden önce hangi veritabanıyla çalışacağımızı belirtmeliyiz. mysql_select_db işlevi bunun için tasarlanmıştır:

bool mysql_select_db(string $veritabanı_adı [,kaynak $bağlantı_tanımlayıcı])

PHP'ye $link_identifier bağlantısındaki gelecekteki işlemlerin $database_name veritabanını kullanacağını bildirir.

Bu işlevin kullanılması, bir SQL sorgusunda use komutunun çağrılmasına eşdeğerdir, yani mysql_select_db işlevi daha fazla çalışma için bir veritabanı seçer ve sonraki tüm SQL sorguları seçilen veritabanına uygulanır. İşlev, seçilen veritabanı veritabanı_adı ve bağlantı tanımlayıcı kaynağının adını bağımsız değişken olarak alır. İşlem başarılıysa işlev true değerini, aksi takdirde false değerini döndürür:

//Veritabanı bağlantı kodu

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

//Bir uyarı göster

Eko("

Veritabanı şu anda kullanılamıyor, bu nedenle sayfa doğru şekilde görüntülenemiyor.");

1.5 Hata yönetimi

MySQL ile çalışırken hatalar meydana gelirse (örneğin, sorgudaki parantezler dengeli değilse veya yeterli parametre yoksa), o zaman hata mesajı ve numarası aşağıda açıklanan iki işlev kullanılarak elde edilebilir.

Bu işlevleri dikkatli ve hızlı bir şekilde kullanmak önemlidir, çünkü aksi takdirde komut dosyalarında hata ayıklamak daha zor hale gelebilir.

● İşlev:

int mysql_errno()

Son bildirilen hatanın numarasını döndürür. Komut dosyasının yürütülmesi sırasında yalnızca bir bağlantı kurulduysa bağlantı tanımlayıcısı $link_identifier atlanabilir.

● İşlev:

dize mysql_error()

bir sayı değil, hata mesajının metnini içeren bir dize döndürür. Hata ayıklama amacıyla kullanılması uygundur. Genellikle mysql_error or die() yapısıyla birlikte kullanılır, örneğin:

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

or die("Veritabanına bağlanırken hata oluştu: ".mysql_error());

@ operatörü her zamanki gibi bir hata durumunda oluşabilecek standart uyarıyı bastırmaya yarar.

PHP'nin son sürümlerinde MySQL işlevlerindeki uyarılar varsayılan olarak günlüğe kaydedilmez.

1.6 MySQL'e bağlantının otomasyonu. Dosya (yapılandırma.php)

Genellikle bir sitede aynı veritabanına erişmesi gereken birden fazla komut dosyası bulunur.

MySQL'e bağlanmaktan sorumlu kodu ayrı bir dosyaya ayırmanız ve ardından include işlevini kullanarak gerekli komut dosyalarına bağlamanız önerilir.

Bir veritabanına bağlanma, seçme ve veritabanı oluşturma işlevlerini, sunucu adı $dblocation, kullanıcı adı $dbuser, şifre $dbpasswd ve veritabanı adı $dbname olan değişkenlerin bildirildiği aynı dosyaya (config.php) yerleştirmek mantıklıdır:

config.php listesi:

//config.php sunucuya bağlanmak ve veritabanı seçmek için parametreleri içeren dosyanın kodu

//bağlantı hatası mesajlarını tarayıcıya gönderir

$dblocation = "localhost"; //Sunucu adı

$dbname = "veritabanı adını girin" //Veritabanı adı: oluşturulmakta veya mevcut

$dbuser = "kök"; //Veritabanı kullanıcı adı

$dbpasswd = ""; //Şifre

//Veritabanı sunucusuna bağlanıyoruz

//Fonksiyonu çağırmadan önce @ sembolüyle hata çıktısını bastırın

$dbcnx=@mysql_connect($dblocation,$dbuser,$dbpasswd);

if (!$dbcnx) //Tanımlayıcı 0 ise veritabanı sunucusuyla bağlantı kurulmaz

//Bir uyarı göster

Eko("

Veritabanı sunucusu şu anda kullanılamıyor, dolayısıyla sayfa doğru şekilde görüntülenemiyor.

");

// $dbname veritabanını oluşturun - bunu yalnızca bir süper kullanıcı yapabilir

//Veritabanı zaten mevcutsa ölümcül olmayan bir hata oluşacaktır

@mysql_query("VERİTABANINI OLUŞTURUN, $dbname');

//Veritabanına bağlantı kodu: yeni oluşturulan bir veritabanı veya mevcut bir veritabanı arasında net bir seçim yapıyoruz

//Fonksiyonu çağırmadan önce @ sembolüyle hata çıktısını bastırın

if(!@mysql_select_db($dbname, $dbcnx)) //Tanımlayıcı 0 ise veritabanıyla bağlantı kurulmaz

//Bir uyarı göster

Eko("

Veritabanı şu anda kullanılamıyor, bu nedenle sayfa doğru şekilde görüntülenemiyor.

");

//Mesaj yazdıran küçük yardımcı fonksiyon

//veritabanı sorgu hatası durumunda hata mesajı

function puterror($mesaj)

Eko("");


2. VERİTABANI SORGULARININ YÜRÜTÜLMESİ

2.1 Tablo oluşturma. İşlevTABLO OLUŞTURUN:

CREATE TABLE TableName (AlanAdı türü, AlanAdı türü,)

Bu komut, veritabanında adlarına (FieldName) ve belirtilen türlere göre tanımlanan sütunların (alanların) bulunduğu yeni bir tablo oluşturur. Tabloyu oluşturduktan sonra bu komutta listelenen alanlardan oluşan kayıtları tabloya ekleyebilirsiniz.

test_11.php listeleniyor. Veritabanında yeni bir tablo oluşturan program:

include "config.php";//Sunucuya bağlanın ve bir veritabanı seçin

mysql_query("Eğer kişi yoksa TABLO OLUŞTURUN)

kimlik INT AUTO_INCREMENT BİRİNCİL ANAHTARI,

veya die("MySQL hatası: ".mysql_error());


Bu komut dosyası iki alanlı yeni bir tablo kişileri oluşturur. İlk alanın türü INT (tamsayı) ve ad kimliğidir. İkincisi, TEXT türü (metin dizesi) ve ad adıdır.

Tablo mevcutsa veya die() yapısı çalışacaktır.

İsteğe bağlı if not asset cümleciği, belirtildiğinde, MySQL sunucusuna, belirtilen adda bir tablonun veritabanında zaten mevcut olması durumunda bir hata mesajı oluşturmaması gerektiğini bildirir.

MySQL sunucusuna nasıl bağlanacağımızı, çalışmak için bir veritabanı seçmeyi, MySQL sunucusuna sorgu göndermenin PHP işlevini öğrendik, iki basit sorguyu (tablo oluşturma ve silme) öğrendik ve bağlantıyı nasıl kapatacağımızı öğrendik.

Şimdi MySQL sorgularına daha derinlemesine dalacağız. Öyleyse başlayalım!

Tablo oluşturma - CREATE TABLE

Artık boş bir veritabanımız var, içinde tablo yok. Öncelikle bir tablo oluşturacağız. Bunu nasıl yapacağımızı zaten ilk bölümden biliyoruz.

İhtiyacımız olan plakayı oluşturacak script kodu:

$bağlantı = mysqli_connect("localhost", "root", "", "test cihazı"); if (!$link) die("Hata"); $query = "CREATE TABLE kullanıcıları(giriş VARCHAR(20), şifre VARCHAR(20))"; if (mysqli_query($link, $query)) echo "Tablo oluşturuldu."; else echo "Tablo oluşturulmadı: ".mysqli_error(); mysqli_close($bağlantı);

Tablomuzda yalnızca iki alan var: kullanıcı adı ve şifre. Şimdilik daha fazlasına ihtiyacımız yok, süreci zorlaştırmayalım.

Böylece tablo oluşturuldu.

Bir tabloya satır (kayıt) ekleme - INSERT

SQL insert komutunu kullanarak bir tabloya yeni bir satır ekleyebilirsiniz. İşte bir örnek:

$bağlantı = mysqli_connect("localhost", "root", "", "test cihazı"); if (!$link) die("Hata"); $query = "INSERT INTO kullanıcılar (giriş, şifre) VALUE ("zeus", "pass123""); if (mysqli_query($link, $query)) echo "Kullanıcı eklendi."; else echo "Kullanıcı eklenmedi: ". mysqli_error(); mysqli_close($bağlantı);

Bir SQL sorgusu, INSERT INTO komutu, veritabanı adı kullanıcıları, ardından parantez içindeki alan adları, ardından VALUE sözcüğü ve ardından parantez içinde eklenecek değerlerden oluşur. Değerler tırnak işaretleri içine alınmıştır.

İstek sözdizimi şuna benzer:

INSERT INTO tablo_adı (sütun1, sütun2) VALUE ("x1", "x2")

İkinci parantez içindeki alıntılar zorunludur.

Değerlerin yerine değişkenler olabilir. İşte bir örnek:

$bağlantı = mysqli_connect("localhost", "root", "", "test cihazı"); if (!$link) die("Hata"); $giriş = "zeus"; $şifre = "şifre123"; $query = "Kullanıcılara INSERT INTO (oturum açma adı, parola) VALUE ("$login", "$password"); if (mysqli_query($link, $query)) echo "Kullanıcı eklendi."; else echo "Kullanıcı eklenmedi: ". mysqli_error(); mysqli_close($bağlantı);

Elbette bu örnek pek mantıklı değil. Yeni başlayanlar için kullanıcıların kayıt sırasında verdikleri kullanıcı adı ve şifrelerin veri tabanına bu şekilde kaydedildiğini duymak faydalı olabilir. Bu veriler değişkenlerde saklanır ve doğrulamanın ardından veritabanına yazılır.

Tek bir INSERT deyimiyle birden çok satır eklemenin hızlı bir yolu vardır:

INSERT INTO kullanıcılar (oturum açma adı, şifre) VALUE ("bob", "eee333"), ("Rooki", "12345"), ("magy", "olol88e8")

Gördüğünüz gibi listelenen veriler virgüllerle ayrılmıştır.

INSERT komutunu kullanarak bir tabloya kayıt eklemeyi öğrendik. Devam etmek.

Tabloyu Görüntüle: SEÇ Komutu

Artık satırları olan bir kullanıcı tablomuz var. Önceki komut dosyası birkaç kez çalıştırılabilir ve her seferinde tabloya bir satır ekleyecektir. Artık tabloda kaç satırımız olduğunu bilemeyebiliriz. Ve içinde ne yazdığımızı bilmek istiyorum.

Bir tablodan veri almak için SELECT SQL komutunu kullanın. * işareti tüm verileri istediğimiz anlamına gelir, ardından FROM kelimesinden sonra veri almak istediğimiz tablonun adını yazıyoruz.

Kullanıcılar tablosundaki tüm verileri sorgulayalım:

$bağlantı = mysqli_connect("localhost", "root", "", "test cihazı"); if (!$link) die("Hata"); $query = "Kullanıcılardan * SEÇİN"; $sonuç = mysqli_query($bağlantı, $sorgu); if (!$result) echo "Bir hata oluştu: " . mysqli_error(); else echo "Veri alındı"; mysqli_close($bağlantı);

mysqli_query() işlevi bize sorgu sonucu tanımlayıcısını döndürdü; bunu bir değişkene koyduk ve daha sonra diğer PHP işlevlerini kullanarak onunla çalışacağız.

Talep edilen kayıt sayısı

Sorgumuzda kaç satır olduğunu belirleyelim mi? Tabloya kayıt eklemek için scripti çalıştırdım, kaç kez hatırlamıyorum ve şimdi tablomda kaç satır olduğunu bilmiyorum.

Bir sorgu sonucundaki satır sayısını belirlemek için mysqli_num_rows() işlevini kullanın. Bu fonksiyona sorgu sonucunun tanımlayıcısı iletilir ve kayıt sayısını döndürür.

$bağlantı = mysqli_connect("localhost", "root", "", "test cihazı"); if (!$link) die("Hata"); $query = "Kullanıcılardan * SEÇİN"; $sonuç = mysqli_query($bağlantı, $sorgu); if (!$result) echo "Bir hata oluştu: " . mysqli_error(); else echo "Veri alındı"; $count = mysqli_num_rows($result); echo "Tablodaki toplam satır: $count."; mysqli_close($bağlantı);

Tablodaki kayıt sayısını bulmamız gerekiyorsa yukarıdaki yöntem en uygun yöntem değildir. Burada sorguda bulunan kayıt sayısını öğrendik ancak tablodaki kayıt sayısı farklı aranıyor.

Tablodaki kayıt sayısı SELECT COUNT(*)

Bir tablodaki kayıt sayısını bulmak için SELECT COUNT(*) FROM table_name komutunu kullanabilirsiniz.

$bağlantı = mysqli_connect("localhost", "root", ""); if (!$link) die("Hata"); mysqli_select_db("test cihazı"); $query = "Kullanıcılardan * SEÇİN"; $sonuç = mysqli_query($bağlantı, $sorgu); if (!$result) echo "Bir hata oluştu: " . mysqli_error(); else echo "Veri alındı."; $count = mysqli_fetch_row($result); echo "Tablodaki toplam satır: $count."; mysqli_close($bağlantı);

Lütfen burada verileri getirmek için yeni PHP işlevi mysqli_fetch_row()'u kullandığımızı unutmayın. Bu fonksiyon sorgu sonucunun bir satırını basit bir dizi biçiminde döndürür; bizim durumumuzda satırda bir alan vardır ve indeksi 0'dır.

Bir sorgunun sonucunu döngüde görüntüleme

SELECT komutuyla bir SQL sorgusu yürüttükten ve sorgu sonuç kimliğini aldıktan sonra PHP, sonuç kayıt kümesinde dahili bir işaretçi oluşturur. Bu işaretçi, geçerli kayda erişildikten sonra otomatik olarak bir sonraki kayda geçer. Bu mekanizma, bir SELECT sorgusunun sonuç kümesinde döngü yapmayı çok kolaylaştırır.

PHP'de, sonuçtaki sorgunun her satırı için alanlarından oluşan bir dizi elde edebileceğiniz çeşitli işlevler vardır. Örneğin mysqli_fetch_row() fonksiyonunu ele alalım. Bu fonksiyona istek tanımlayıcısı iletilir ve bir dizi döndürür. Yani bir döngüde sorgu sonucunun tamamı görüntülenir ve sorgu sonucunun sonuna ulaşıldığında işlev false değerini döndürür.

Yani tüm verileri kullanıcılar tablosundan sorguluyoruz (SELECT * FROM user).


"; while ($row = mysqli_fetch_row($result)) ( echo "Giriş: $row. Şifre: $row.
"; ) mysqli_close($bağlantı);

mysqli_fetch_row() işlevi basit bir dizi döndürür. Döngünün her yinelemesinde, tablodan, alanlarına sayısal bir indeks belirterek erişebileceğimiz bir satır içeren bir dizi alacağız.

Aynı şey mysql_fetch_assoc() işlevi kullanılarak da yapılabilir; ilişkisel bir dizi döndürür.

$bağlantı = mysqli_connect("localhost", "root", ""); if (!$link) die("Hata"); mysqli_select_db("test cihazı"); $sonuç = mysqli_query($bağlantı, "Kullanıcılardan * SEÇİN"); if (!$result) echo "Bir hata oluştu: " . mysqli_error(); else echo "Veri alındı.
"; while ($row = mysqli_fetch_assoc($result)) ( echo "Giriş: $row. Şifre: $row.
"; ) mysqli_close($bağlantı);

Ayrıca mysqli_fetch_array() - herhangi bir dizi türünü döndürür ve mysqli_fetch_object() - bir nesneyi döndürür işlevleri de vardır.

SELECT DISTINCT sorgusu - benzersiz alan değerleri

Yeni bir tablo oluşturalım:

$bağlantı = mysqli_connect("localhost", "root", ""); if (!$link) die("Hata"); mysqli_select_db("test cihazı"); // mevcut tabloyu silin mysqli_query($link, "DROP TABLE kullanıcıları"); // yeni bir tablo oluştur $query = "CREATE TABLE kullanıcılar(isim VARCHAR(20), soyadı VARCHAR(20), yaş TINYINT UNSIGNED)"; if (mysqli_query($link, $query)) echo "Tablo oluşturuldu.
"; else echo "Tablo oluşturulmadı: " . mysqli_error(); // tabloya kayıt ekleme işlevi function add_new_line($link, $query) ( if (!mysqli_query($link, $query)) echo "Kullanıcı not eklendi: " . mysqli_error(); ) // kayıt ekle add_new_line($link, "INSERT INTO kullanıcılar (ad, soyad, yaş) VALUE ("Max", "Jayson", "33")"); add_new_line($link) , "INSERT INTO kullanicilar (isim, soyad, yas) VALUE ("Bob", "Freeman", "26")"); add_new_line($link, "INSERT INTO kullanicilar (isim, soyad, yas) VALUE ("Sara" , "Lopes", "65")"); add_new_line($link, "INSERT INTO kullanıcılar (ad, soyad, yaş) VALUE ("Serg", "Pupin", "29")"); add_new_line($link, " INSERT INTO kullanicilar (ad, soyad, yas) VALUE ("Serg", "Borman", "43")"); add_new_line($link, "INSERT INTO kullanicilar (isim, soyad, yas) VALUE ("Max", " Lopes", "21")"); // tablonun içeriğini tarayıcıda görüntüle $result = mysqli_query($link, "SELECT * FROM user"); if (!$result) echo "Bir hata oluştu: " . mysqli_error(); else echo "Veri alındı.
"; while ($row = mysqli_fetch_assoc($result)) ( echo "Ad: $row. Soyadı: $row. Yaş: $row.
"; ) mysqli_close($bağlantı);

Böylece benzersiz kayıtlara sahip yeni ve daha karmaşık bir tablomuz var. Şimdi veritabanımızda kaç isim olduğuna bakalım.

$bağlantı = mysqli_connect("localhost", "root", ""); if (!$link) die("Hata"); mysqli_select_db("test cihazı"); $result = mysqli_query($link, "Kullanıcılardan DISTINCT adı SEÇİN"); echo "Toplam adlar: ". mysqli_num_rows($sonuç)."
"; echo "İsim listesi:
"; while ($isim = mysqli_fetch_row($sonuç)) ( echo "$isim
"; ) mysqli_close($bağlantı);

"Kullanıcılardan DISTINCT adı SEÇ" SQL sorgusu, tablomuzdaki tüm benzersiz adları içeren bir sonuç döndürdü. Sorgu sonucunun yeni satırındaki her benzersiz ad.

Sonucu sıralama - ORDER BY

SQL sorgusuna ORDER BY komutunu ekleyerek sorgu sonucunu artan düzende (sayılar ve harfler alfabetik sırayla) sıralıyoruz. Burada normal bir sorgu ile yaşa (yaş alanı) göre sıralanmış bir sorguyu karşılaştırabileceğiniz bir örnek verilmiştir.



"; ) echo "Yaşa göre sırala:
"; $result = mysqli_query($link, "Kullanıcılardan * YAŞA GÖRE SİPARİŞ SEÇİN"); while ($line = mysqli_fetch_row($result)) ( echo "Ad: $satır. Soyadı: $satır. Yaş: $ astar.
"; ) mysqli_close($bağlantı);

ORDER BY komutundaki yaş alanını isim alanıyla değiştirip sonucu görebilirsiniz.

Sorgu sonucunu ters sırada sıralamak için ORDER BY age DESC komutunu kullanın.

Eşleştirme koşulu - WHERE

SQL sorgusuna WHERE komutunu ekleyerek yalnızca koşulu karşılayan kayıtları sorgulayacağız. Mesela 30 yaş altı kişiler için talepte bulunalım.

Bunu yapmak için "SELECT * FROM user WHERE age" SQL sorgusunu kullanıyoruz

$bağlantı = mysqli_connect("localhost", "root", ""); if (!$link) die("Hata"); mysqli_select_db("test cihazı"); echo "30 yaşın altındaki kişiler:
"; $result = mysqli_query($link, "SELECT * FROM user WHERE age<30"); while ($line = mysqli_fetch_row($result)) { echo "Имя: $line. Фамилия: $line. Возраст: $line.
"; ) mysqli_close($bağlantı);

Ayrıca sonucu hemen artan yaş sırasına göre sıralayabiliriz:
" YAŞIN YERİNDEKİ KULLANICILARDAN SEÇİN *<30 ORDER BY age ".

Eğer bir sorgu yaparsak "Kullanıcıların Yaşının Nerede Olduğunu Seçin"<30 ORDER BY age ", то в результате нам вернут только значения поля "name", но они также будут отсортированы по age.

İki alanın değerlerini sorgulayabiliriz: " SELECT name, age FROM user WHERE age

Şimdi "Max" isimli tüm kullanıcılara istekte bulunalım.

$bağlantı = mysqli_connect("localhost", "root", ""); if (!$link) die("Hata"); mysqli_select_db("test cihazı"); echo "Tüm Maksimumlar:
"; $result = mysqli_query($link, "SELECT * FROM user WHERE name="Max""); while ($line = mysqli_fetch_row($result)) ( echo "Ad: $line. Soyadı: $line. Yaş: $line.
"; ) mysqli_close($bağlantı);

Ve başka bir sorgu örneği - yalnızca kullanıcılar tablosundaki adları seçecektir, Max dışındaki her şeyi.

Kullanıcılardan adı WHERE adını seçin! = "Maks"

WHERE sorgusu için hepsi bu.

Girişleri sınırlama - LIMIT

SQL sorgusuna LIMIT komutunu ekleyerek sonucun boyutunu sınırlandıracağız.

İlk üç girişi döndüren sorgu şudur: " SELECT * FROM user LIMIT 3 ". Nasıl çalıştığını görelim:

$bağlantı = mysqli_connect("localhost", "root", ""); if (!$link) die("Hata"); mysqli_select_db("test cihazı"); echo "Tablo içeriği:
"; $result = mysqli_query($link, "Kullanıcılardan * SEÇİN"); while ($line = mysqli_fetch_row($result)) ( echo "Ad: $satır. Soyadı: $satır. Yaş: $satır.
"; ) Eko "

İlk üç giriş:
"; $result = mysqli_query($link, "SELECT * FROM user LIMIT 3"); while ($line = mysqli_fetch_row($result)) ( echo "Ad: $satır. Soyadı: $satır. Yaş: $satır .
"; ) Eko "

İkinci üç giriş:
"; $result = mysqli_query($link, "SELECT * FROM user LIMIT 3, 3"); while ($line = mysqli_fetch_row($result)) ( echo "Ad: $line. Soyadı: $line. Yaş: $hat .
"; ) mysqli_close($bağlantı);

Burada ayrıca şu sorguyu kullandık: "SELECT * FROM user LIMIT 3, 3". İkinci üçlü sorgu sonucundaki uzaklığı gösterir.

Eşleşme modeli - BEĞEN

SQL dili basit şablonları destekler. Bunu yapmak için LIKE komutunu kullanın ve % sembolünü kullanarak deseni belirtin.

İşte S harfiyle başlayan adlara sahip tüm kayıtları döndürecek örnek bir sorgu.

Adın "S%" GİBİ OLDUĞU KULLANICILARDAN * SEÇİN

İsteği test ediyorum:

$bağlantı = mysqli_connect("localhost", "root", ""); if (!$link) die("Hata"); mysqli_select_db("test cihazı"); echo "Tablo içeriği:
"; $result = mysqli_query($link, "Kullanıcılardan * SEÇİN"); while ($line = mysqli_fetch_row($result)) ( echo "Ad: $satır. Soyadı: $satır. Yaş: $satır.
"; ) Eko "

S ile başlayan isimler:
"; $result = mysqli_query($link, "SELECT * FROM user WHERE name LIKE "S%""); while ($line = mysqli_fetch_row($result)) ( echo "Ad: $line. Soyadı: $line Yaş : $line.
"; ) mysqli_close($bağlantı);

Soyadları s harfiyle biten tüm kayıtları döndürecek örnek bir sorguyu burada bulabilirsiniz.

Adın "%s" GİBİ OLDUĞU KULLANICILARDAN * SEÇİN

Koşul karşılandı - IN

IN komutunu kullanan bu sorgu yalnızca koşulla tam olarak eşleşen satırları döndürür.

Örneğin 21, 26 ve 33 yaşlarındaki kişilerle ilgileniyoruz.

SEÇİN * YAŞIN YERİNDEKİ kullanıcılardan (21,26,33)

İsteği test ediyorum:

$bağlantı = mysqli_connect("localhost", "root", ""); if (!$link) die("Hata"); mysqli_select_db("test cihazı"); echo "Tablo içeriği:
"; $result = mysqli_query($link, "Kullanıcılardan * SEÇİN"); while ($line = mysqli_fetch_row($result)) ( echo "Ad: $satır. Soyadı: $satır. Yaş: $satır.
"; ) Eko "

Gerekli yaştaki kişiler (21, 26, 33):
"; $result = mysqli_query($link, "SELECT * FROM user WHERE age IN (21, 26, 33)"); while ($line = mysqli_fetch_row($result)) ( echo "Ad: $line. Soyadı : $ satır. Yaş: $ satır.
"; ) mysqli_close($bağlantı);

Bir sütundaki maksimum ve minimum değer

Kullanıcılar tablosundaki maksimum yaş değerini seçer.

Kullanıcılardan maksimum(yaş) SEÇİN

Aşağıdaki sorgu, age'in minimum değeri aldığı ad ve yaş alanlarını kullanarak kullanıcılar tablosundan verileri seçer.

Kullanıcılardan ad, min(yaş) SEÇİN

Bir kaydı güncelleme - UPDATE

Max Lopes'in yaşını 15'e ayarlayalım. Bu bir MySQL sorgusu ile yapılır:

GÜNCELLEME kullanıcıları SET age = "15" WHERE name = "Max" VE soyadı = "Lopes"

Lütfen sorgudaki yeni AND komutuna (ve İngilizce'de "ve" anlamına gelir) dikkat edin. Soyadını belirtmediğimiz takdirde tablodaki tüm Max'ler için 15 yaş sınırı belirlenecektir.

Tek satırdaki iki veya daha fazla alanı tek sorguyla güncelleyebilirsiniz. Bu şu şekilde yapılır:

GÜNCELLEME kullanıcıları SET yaş = "18", soyadı = "Coocker" WHERE id = "3"

Tablomuzun bir kimlik alanı yok, dolayısıyla bu sorgu onun üzerinde çalışmayacak. Ancak benzersiz satır numaralarını içeren bu alanı mutlaka öğreneceğiz.

Girişi silme - DELETE

Bir kaydı silmek için MySQL veritabanı sorgusu:

WHERE kimliği = "10" olan kullanıcılardan SİL

Yine tablomuzda id alanı bulunmamaktadır. Ama 18 yaş altı herkesi bu gruptan çıkartabiliriz.

Yaşın YERİNDEKİ KULLANICILARDAN SİLİN< "18"

Tablo silme - DROP TABLE

Kullanıcılar tablosunun tamamını silen MySQL veritabanı sorgusu:

DROP TABLE kullanıcıları

Bir sütunu silin - ALTER TABLE ... DROP ...

Bazen bir tablodan bir sütunu kaldırmanız gerekebilir; örneğin, yaş sütununu kullanıcılardan kaldıralım:

ALTER TABLE kullanıcılarının yaşını DÜŞÜRÜN

Bu MySQL sorgusu sütunu kalıcı ve kalıcı olarak sildi.

Sütun ekleyin - ALTER TABLE ... EKLE ...

Bazen mevcut bir tabloya bir sütun eklemeniz gerekebilir; örneğin, yaş sütununu tekrar kullanıcılar tablosuna ekleyelim:

ALTER TABLE kullanıcıları TINYINT UNSIGNED yaşını EKLEYİN

Bir sütunu yeniden adlandırma - ALTER TABLE ... DEĞİŞTİR ...

Bazen bir sütunu yeniden adlandırmanız gerekebilir; örneğin, yaş sütununu vozrast olarak yeniden adlandırın. Bunu şu şekilde yapıyoruz:

ALTER TABLE kullanıcıları YAŞI DEĞİŞTİRİN TINYINT UNSIGNED

Bu MySQL sorgusu, sütun yaşını TINYINT UNSIGNED veri türüyle vozrast olarak yeniden adlandırdı.

Bir tabloyu yeniden adlandırma - TABLOYU YENİDEN ADLANDIRIN ... TO ...

Bazen tabloyu yeniden adlandırmanız gerekebilir:

TABLO kullanıcılarını kişilere YENİDEN ADLANDIRIN

Veritabanını kaldırma - DROP DATABASE

Bu sorgu, tester adlı veritabanını silebilir:

DROP DATABASE test cihazı

Veritabanı oluşturma - CREATE DATABASE

Bu sorgu, tester adında bir veritabanı oluşturur:

CREATE DATABASE test cihazı

Bu istek Denver'da benim için işe yarıyor, ancak veritabanı kullanıcısının silme işlemini gerçekleştirme hakları yoksa barındırmada çalışmayabilir.

Sonuçlar

Bu bölümde MySQL sorgularıyla tanıştık. İncelediğimiz sorguların çoğu, çalışma sürecinde bizim için çoğu zaman yararlı olmuyor, ancak senaryo geliştirme sürecinde kesinlikle işe yarayacakları için bunları bilmemiz gerekiyor.

Bazı istekler genellikle yalnızca phpMyAdmin'den yapılır (örneğin veritabanlarının oluşturulması ve silinmesi).

Web siteleri üzerinde çalışırken genellikle tabloya kayıt eklemeniz, kaydı düzenlemeniz veya tablodan kayıt silmeniz gerekir.

Bir sonraki adım MySQL veri türlerini öğrenmektir.