PHP MySQL Veritabanı Bağlantısı Nasıl Yapılır (PDO ve MySQLi ile)

Katılım
30 Ağu 2020
Mesajlar
50
Beğeniler
1
Konum
Yalova
Eğer web geliştirme öğrenmeye yeni başlayan biriyseniz PHP MySQL veritabanı bağlantısı nasıl yapılır bilmek fazlasıyla işinize yarayacaktır. Bu şekilde farklı şekilde oluşturduğunuz tabloları yönetebilir, düzenleyebilir, görüntüleyebilir veya silebilirsiniz. Bu rehberimizde bunun en kolay yollarını öğreneceksiniz.

Bir MySQL Veritabanı Oluşturma (Tercihen)
Eğer henüz bir MySQL veritabanı oluşturmadıysanız bu adım gereklidir.

  1. Databases (Veritabanları) kısmının altındaki MySQL Databases (MySQL Veritabanları) menüsünü bulun.
  2. Gerekli kısımları girin ve Create (Oluştur) tuşuna basın.
    Hostinger Kontrol Paneli MySQL Veritabanı Oluştur
Cpanel üzerinde nasıl bir MySQL veri tabanı oluşturabileceğinizi öğrenmek için bu rehbere göz atın. Ancak unutmayın ki henüz oluşturduğunuz veritabanları boştur ve onlarla çalışmadan önce veriyle doldurulmaları gerekir.

Oluşturduğunuz MySQL veritabanı bilgilerini bir köşeye yazın. Sıradaki adımda onlara ihtiyacınız olacak.
Bir PHP Script’inin MySQL’e Bağlanmasının İki Yolu
PHP ile bir SQL veritabanına bağlanmanın iki yöntemi bulunuyor, MySQLi ve PDO.

MySQLi açılımı MySQL Improved yani, Geliştirilmiştir. MySQLi, bir MySQL veritabanın arayüzüne yeni özellikler getiren kapsamlı bir uzantıdır. MySQL hem yöntemsel, hem de nesne yönelimlidir. Yöntemsel yanını ise eski MySQL sürümlerinden almaktadır.

MySQL’in kendisi bir görevi çizgisel, adım adım prosedürlere böler ve düzenlemeyi zorlaştırır çünkü kodu en baştan düzenlemeniz gerekmektedir. MySQLi ise veriyi fonksiyonlu bir takım değiştirilebilir objeler olarak görmektedir ve kullanıcıların kolaylıkla kullanıcı eklemesine veya veri silmesine izin verir.

PDO ise PHP Data Object olarak açılır. PDO ve MySQLi arasındaki başlıca fark PDO’nun aynı script içinde PHP kullanan birden fazla farklı veritabanını (MySQL, MSSQL, Informix ve PostgreSQL) desteklemesidir.

Orijinal ‘mysql_’ fonksiyonları deprecated (artık kullanılmayan) olduğundan güvenli olmaması ve artık geliştirilmemesi sebebiyle kullanılmamalıdır.
İkisinin de desteklediği en önemli özelliklerden biriyse prepared statements desteği sağlamalarıdır. Bu özellikle aynı sorguyu birden fazla çalıştırmak istediğinizde zaman tasarrufu yapabilirsiniz. Bu özellik ayrıca veritabanına değişiklik yaparken SQL injection saldırılarını ortadan kaldırmayı sağlar.

Hangi yöntemi kullanırsanız kullanın oluşturduğunuz MySQL veritabanına bağlanmak için doğru bilgilere ihtiyacınız olacak. İşte bu noktada önceden bir kenara not aldığınız MySQL veritabanı bilgileri devreye girecektir.

Ayrıca yapılandırma için doğru sunucu adına veya hostname‘e de ihtiyaç duyacaksınız.

Eğer bir veritabanına uzak bir konumdan (örneğin bilgisayarınız) bağlanıyorsanız MySQL sunucusunun IP adresini kullanmanız gerekir. Daha fazla bilgi için hosting sağlayıcınızla iletişime geçin ve hostname olarak kullanmanız gereken doğru bilgileri edinin.

Bir PHP Script’ini MySQL’e Bağlamak için MySQLi Kullanımı
Bir PHP script’ini MySQL’e bağlamak için bu adımları takip edin:

  1. File Manager (Dosya Yöneticisi) -> public_html konumunu takip edin.
  2. Yukarıdaki menüden Yeni Dosya ikonuna tıklayın.
  3. Bu dosyayı databaseconnect.php olarak kaydedin. Dosyanın adını istediğiniz gibi değiştirebilir ancak uzantı olarak .php kullanıldığından emin olun.
  4. Dosyayı açmak için çift tıklayın ve açtıktan sonra aşağıdaki kod satırlarına kopyalayıp yapıştırın. <?phpaşağısındaki ilk dört değeri daha önce bir kenara yazdığınız bilgilerle değiştirin.
    1. <?php
    2. $servername = "localhost";
    3. $database = "veritabaniadi";
    4. $username = "kullaniciadi";
    5. $password = "sifre";

    6. // Create connection

    7. $conn = mysqli_connect($servername, $username, $password, $database);

    8. // Check connection

    9. if (!$conn) {

    10. die("Connection failed: " .
    11. mysqli_connect_error());

    12. }
    13. echo "Connected successfully";
    14. mysqli_close($conn);
    15. ?>


Bir PHP Script’ini MySQL’e Bağlamak için PDO Kullanımı
Bir PHP script’ini MySQL’e bağlamanın diğer yöntemi ise PDO kullanımıdır. Bu yöntem bir öncekine oldukça benzerdir ancak ufak farklılıklara sahiptir:

  1. public_html‘de pdoconfig.php adında bir dosya oluşturun ve aşağıdaki kodu yerleştirin. Her zamanki gibi bu değerleri veritabanı bilgilerinizle değiştirmeyi unutmayın. İşiniz bittikten sonra Kaydet & Çık‘a tıklayın.
    1. <?php
    2. $host = 'localhost';
    3. $dbname = 'veritabaniadi';
    4. $username = 'kullaniciadi';
    5. $password = 'sifre';
  2. Aynı dizinde databaseconnect.php adında bir dosya oluşturun ancak bu sefer aşağıdaki kodu yapıştırın. Eğer önceki dosyaya farklı bir isim verdiyseniz require_once değerini değiştirmeyi unutmayın.
    1. <?php
    2. require_once 'pdoconfig.php';
    3. try {
    4. $conn = new PDO("mysql:host=$host;dbname=$dbname", $username, $password);
    5. echo "Connected to $dbname at $host successfully.";
    6. } catch (PDOException $pe) {
    7. die("Could not connect to the database $dbname :" . $pe->getMessage());
    8. }
PDO Kodu Açıklaması
Bir PDO veritabanı Data Source Name (DSN), kullanıcı adı ve şifre ile yeni bir ‘PDO object’ oluşturmanızı gerektirir.

DSN veritabanı türünü, veritabanının adını ve gerekliyse diğer bilgileri tanımlar. Bunlar, dbconfig.php dosyası içinde belirlediğimiz değişkenler ve değerlerdir. Bu dosyadan ise databaseconnect.php dosyasının require_once satırında bir kez bahsedilmektedir.

İkinci dosyada ‘try… catch…’ kodunu göreceksiniz. Bunun anlamı script’in verilen kodu kullanarak MySQL ile bağlantı kurmaya çalışır ve eğer bir problem oluşursa ‘catch’ bölümündeki kod çalıştırılır. Catch block kullanarak hata mesajlarını gösterebilir veya try block başarısız olursa alternatif bir kod çalıştırabilirsiniz.

Eğer PHP bağlantı kodu başarılı bir şekilde çalışır ve bağlantı sorunsuz oluşturulursa “Connected to $dbname at $host successfully.” mesajını elde edersiniz. Ancak deneme başarısız olursa catch kodu basit bir hata mesajı gösterir ve script’i sonlandırır.

PHP MySQL Veritabanı Bağlantısı Hatalarını Çözümleme
Bağlantının başarı olup olmadığını görmek için domaininiz/databaseconnect.php kısmına gidin. Eğer PHP dosyasına farklı bir isim verdiyseniz bu noktaya dikkat edin.

Eğer her şey sorunsuz bir biçimde çalışıyorsanız “Connected successfully” benzeri bir mesaj görürsünüz.

Eğer bağlantı başarısızsa farklı bir mesaj görürsünüz. Hata mesajları MySQLi ve PDO için biraz farklıdır.

Yanlış Şifre Hatası
Bu hata PHP kodundaki şifreyi veya herhangi bir bilgiyi değiştirdiğiniz (veritabanındaki gerçeğini değiştirmeden) takdirde oluşur.

Eğer sonunda “(using password: YES)” olan “Access denied” veya “Could not connect to database” mesajını görürseniz ilk yapmanız gereken veritabanı bilgilerini kontrol etmektir. Eksik veya yanlış olan biri kısım olabilir.

MySQL Sunucusuna Bağlanılamıyor/h3>
Eğer MySQLi’de “Can’t connect to MySQL server on ‘server’ (110)” hatasını alırsanız bunun anlamı script’in sunucudan yanıt alamadığıdır. Bu, $servername olarak “localhost” yerine “sunucu” belirlediyseniz ve isim tanınmadıysa gerçekleşmektedir.

PDO’da ise MySQL host’unun bulunamadığını belirten bilgilerle birlikte “Connection failed: SQLSTATE[Hy000] [2002]” gibi bir hata mesajı alırsınız. Bu hatayı da tıpkı MySQLi’deki hatayı çözdüğünüz gibi çözebilirsiniz.

Ve elbette, bir hata çözümlemedeki altın kuralı unutmamak oldukça önemlidir: error_log kontrolü.

Bu dosyayı script’in çalıştığı aynı klasörde bulabilirsiniz. Örneğin public_html içinde bir script çalıştırıyorsak, error_log dosyası aynı klasörde olacaktır.

Sonuç
Bu rehberde veritabanları ve PHP Data Objects (PDO) ile MySQLi kullanarak PHP MySQL veritabanı bağlantısı nasıl yapılır öğrenmiş oldunuz.

Öğrendiklerinizi daha gelişmiş scriptlerde ve konfigürasyonlarda kullanabilirsiniz. Bir veritabanına bağlanmak onlarla çalışmaya başlamanın ilk ve en önemli adımıdır.

Eğer bu rehberi takip ettiğinizde herhangi bir sorun yaşarsanız aşağıdaki yorumlar kısmında bizimle paylaşın.
 
Üst Alt