Bir içeriğe erişmek ve içerik eklemek için MySQL veritabanı ile veritabanı arasında bir bağlantı kurmanız gerekir. PHP senaryo.
Bu öğreticide, MySQL’e bağlanmak için MySQLi Uzantısı ve PHP Veri Nesnelerini nasıl kullanacağınızı öğrenin.. Geleneksel eski mysql_ işlevleri kullanımdan kaldırılmıştır ve bunları bu kılavuzda ele almayacağız.
Önkoşullar
- Özel CREATE ayrıcalıkları
- Bir MySQL Veritabanı
- Bir MySQLi veya PDO uzantısı
PHP Kullanarak MySQL Veritabanına Bağlanmanın 2 Yolu
PHP kullanarak bir MySQL veritabanına bağlanmanın iki popüler yolu vardır:
- İle PHP’nin MySQLi Uzantısı
- İle PHP Veri Nesneleri (PDO)
Kılavuz ayrıca PHP betiklerinde kullanılan kimlik bilgileri ve MySQLi ve PDO kullanırken karşılaşabileceğiniz olası hatalar için açıklamalar içerir.
1. Seçenek: MySQL Enhanced uzantısıyla MySQL’e bağlanın
MySQLi yalnızca MySQL veritabanlarını destekleyen bir uzantıdır. MySQL sistemlerinde (sürüm 4.1 ve üstü) bulunan yeni işlevlere erişim sağlayarak hem nesne yönelimli hem de prosedürel bir arayüz sağlar. Sunucu tarafında hazırlanan ifadeleri destekler, ancak istemci tarafında hazırlanan ifadeleri desteklemez.
MySQLi uzantısı, PHP sürüm 5 ve daha yenisini içermektedir.
MySQLi prosedür yaklaşımını kullanarak bir MySQL veritabanına bağlanmak için PHP betiği aşağıdaki gibidir:
<?php
$servername = "localhost";
$database = "database";
$username = "username";
$password = "password";
// Create connection
$conn = mysqli_connect($servername, $username, $password, $database);
// Check connection
if ($conn->connect_error) {
die("Connection failed: " . $conn->connect_error);
}
echo “Connected successfully”;
mysqli_close($conn);
?>
Kimlik Bilgileri Açıklandı
Komut dosyasının ilk bölümü dört değişken (sunucu adı, veritabanı, kullanıcı adı ve parola) ve bunların ilgili değerlerinden oluşur. Bu değerler bağlantı detaylarınıza karşılık gelmelidir.
Sonraki ana PHP işlevidir mysqli_connect(). Belirtilen veri tabanı ile bağlantı kurar.
Aşağıdaki bir “if ifadesi” Bağlantının kurulup kurulmadığını gösteren kod kısmıdır. Bağlantı başarısız olduğunda, mesajı verir Bağlantı başarısız oldu. bu ölmek işlevi mesajı yazdırır ve ardından çıkışlar senaryo dışında.
Bağlantı başarılı olursa, “Başarıyla bağlandı”
Komut dosyası bittiğinde, veritabanı ile bağlantı da kapanır. Kodu manuel olarak sonlandırmak istiyorsanız, mysqli_close işlev.
Seçenek 2: PDO ile MySQL’e Bağlan
PHP Veri Nesneleri (PDO) veritabanlarına bağlanmak için arayüz görevi gören bir uzantıdır. MySQLi’den farklı olarak, herhangi bir veritabanı işlevini gerçekleştirebilir ve MySQL ile sınırlı değildir. Veritabanları arasında esneklik sağlar ve MySQL’den daha geneldir. PDO, hem sunucu hem de istemci tarafında hazırlanan ifadeleri destekler.
Not: PDO, 5.0’dan eski PHP sürümlerinde çalışmaz ve PHP 5.1’e dahildir.
PDO uzantısı aracılığıyla bir MySQL veritabanına bağlanmak için kullanılan PHP kodu:
<?php
$servername = "localhost";
$database = "database";
$username = "username";
$password = "password";
$charset = "utf8mb4";
try {
$dsn = "mysql:host=$servername;dbname=$database;charset=$charset";
$pdo = new PDO($dsn, $username, $password);
$pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
echo “Connection Okay”;
return $pdo
}
catch (PDOException $e)
{
echo “Connection failed: ”. $e->getMessage();
}
?>
Kimlik Bilgileri Sözdizimi
İlk olarak, beş değişkenimiz (sunucu adı, veritabanı, kullanıcı adı, parola ve karakter kümesi) ve değerleri var. Bu değerler bağlantı detaylarınıza karşılık gelmelidir.
bu sunucu adı olacak yerel ana bilgisayar. Çevrimiçi bir sunucuya bağlıysa, o sunucunun sunucu adını yazın.
Değişken karakter kümesi veritabanına hangi kodlamada veri alıp göndereceğini söyler. önerilen standart utf8mb4.
Dene ve Yakala Blokları
PDO’nun en büyük varlığı, bir istisna veritabanı sorgularındaki olası sorunlarla ilgilenmek için sınıf. birleştirerek bu sorunları çözmektedir. dene ve yakala bloklar.
Bağlanmaya çalışırken bir sorun çıkarsa çalışmayı durdurur ve bağlanmaya çalışır. yakalamak ve sorunu çözün. Yakalamak bloklar gösterecek şekilde ayarlanabilir hata mesajları veya bir çalıştırın alternatif kod.
daki ilk parametre dene ve yakala blok DSN, hangi anlama gelir veri (temel) kaynak adı. Diğer ek bilgilerle birlikte veritabanının türünü ve adını tanımladığı için çok önemlidir.
Bu örnekte, bir MySQL veritabanı kullanıyoruz. Ancak, PDO çeşitli veritabanlarını destekler. Farklı bir veritabanınız varsa, sözdiziminin o kısmını değiştirin (mysql) kullandığınız veritabanı ile.
sıradaki PDO değişken. Bu değişken veritabanına bir bağlantı kuracak. Üç parametresi vardır:
- Veri kaynağı adı (dsn)
- Veritabanınız için kullanıcı adı
- Veritabanınız için parola
Aşağıdaki setAttribute yöntemi PDO’ya iki parametre eklemek:
- PDO::ATTR_ERRMODE
- PDO::ERRMODE_EXCEPTION
Bu yöntem, PDO’ya bir istisna bir sorgunun başarısız olması durumunda.
yankı ekle “Bağlantı tamam” bir bağlantının kurulduğunu onaylamak için
Geri dönmek veritabanına bağlanmak için PDO değişkeni.
PDO değişkenini döndürdükten sonra, PDO İstisnası içinde yakalamak bağlantı başarısız olduğunda bir mesaj görüntülemesini isteyerek engelleyin.
MySQLi ve PDO ile İlgili Olası Hatalar
Yanlış parola
PHP kodundaki parolanın veri tabanındaki parolayla eşleşmesi gerekir. İkisi eşleşmezse, veritabanı ile bağlantı kurulamaz. diyen bir hata mesajı alacaksınız. bağlantı başarısız oldu.
Muhtemel çözümler:
- Parolanın doğru olduğundan emin olmak için veritabanı ayrıntılarını kontrol edin.
- Veritabanına atanmış bir kullanıcı olduğundan emin olun.
MySQL Sunucusuna Bağlanamıyor
Sunucu adı tanınmazsa PHP, MySQL sunucusuna bağlanamayabilir. emin olun sunucu adı ayarlandı yerel ana bilgisayar.
Başka hatalar olması durumunda, başvurduğunuzdan emin olun. hata_günlüğü herhangi bir sorunu çözmeye çalışırken yardımcı olacak dosya. Dosya, komut dosyasının çalıştığı klasörde bulunur.
Çözüm
Bu kılavuz, PHP kullanarak bir MySQL veritabanına bağlanmanın iki yolunu ayrıntılı olarak açıkladı.
İkisi birden MySQLi ve PDO avantajları var. Ancak, MySQLi’nin yalnızca MySQL veritabanları için kullanıldığını unutmayın. Bu nedenle, başka bir veritabanına geçmek isterseniz, kodun tamamını yeniden yazmanız gerekecektir. PDO ise 12 farklı veri tabanı ile çalışıyor ve bu da geçişi çok daha kolay hale getiriyor.