PHP Eğitimi

PHP ANA SAYFA PHP'ye Giriş PHP Kurulumu PHP Sözdizimi PHP Yorumları PHP Değişkenleri PHP Yankı / Yazdır PHP Veri Türleri PHP Dizeleri PHP Numaraları PHP Matematik PHP Sabitleri PHP Operatörleri PHP If...Else...Elseif PHP Anahtarı PHP Döngüleri PHP Fonksiyonları PHP Dizileri PHP Süper Küreseller PHP Normal İfade

PHP Formları

PHP Form İşleme PHP Form Doğrulama PHP Formu Gerekli PHP Formu URL/E-posta PHP Formu Tamamlandı

PHP Gelişmiş

PHP Tarih ve Saat PHP Dahil PHP Dosya İşleme PHP Dosyası Aç/Oku PHP Dosyası Oluştur/Yaz PHP Dosya Yükleme PHP Çerezleri PHP Oturumları PHP Filtreleri PHP Filtreleri Gelişmiş PHP Geri Çağırma İşlevleri PHP JSON'u PHP İstisnaları

PHP OOP

PHP OOP nedir PHP Sınıfları/Nesneleri PHP Oluşturucu PHP Yıkıcı PHP Erişim Değiştiricileri PHP Kalıtımı PHP Sabitleri PHP Soyut Sınıfları PHP Arayüzleri PHP Özellikleri PHP Statik Yöntemler PHP Statik Özellikler PHP Ad Alanları PHP Yinelenebilirler

MySQL Veritabanı

MySQL Veritabanı MySQL Bağlantısı MySQL Veritabanı Oluştur MySQL Tablo Oluştur MySQL Veri Ekle MySQL Son Kimliği Al MySQL Ekle Çoklu MySQL Hazırlandı MySQL Seçim Verisi MySQL Nerede MySQL Sıralaması MySQL Verileri Sil MySQL Güncelleme Verileri MySQL Sınır Verileri

PHP XML'i

PHP XML Ayrıştırıcıları PHP SimpleXML Ayrıştırıcı PHP SimpleXML - Al PHP XML Expat'ı PHP XML DOM'si

PHP - AJAX

AJAX'a Giriş AJAX PHP AJAX Veritabanı AJAX XML'i AJAX Canlı Arama AJAX Anketi

PHP Örnekleri

PHP Örnekleri PHP Derleyici PHP Testi PHP Alıştırmaları PHP Sertifikası

PHP Referansı

PHP'ye Genel Bakış PHP Dizisi PHP Takvimi PHP Tarihi PHP Dizini PHP Hatası PHP İstisnası PHP Dosya Sistemi PHP Filtresi PHP FTP'si PHP JSON'u PHP Anahtar Kelimeler PHP Libxml PHP Postası PHP Matematik PHP Çeşitli PHP MySQLi PHP Ağı PHP Çıkış Kontrolü PHP Normal İfade PHP SimpleXML PHP Akışı PHP Dizisi PHP Değişken İşleme PHP XML Ayrıştırıcı PHP Posta Kodu PHP Saat Dilimleri

PHP MySQL'e Bağlan


PHP 5 ve sonraki sürümleri, aşağıdakileri kullanarak bir MySQL veritabanıyla çalışabilir:

  • MySQLi uzantısı ("i" gelişmiş anlamına gelir)
  • PDO (PHP Veri Nesneleri)

PHP'nin önceki sürümleri MySQL uzantısını kullanıyordu. Ancak, bu uzantı 2012'de kullanımdan kaldırıldı.


MySQLi veya PDO Kullanmalı mıyım?

Kısa bir cevaba ihtiyacınız varsa, "Nasıl istersen" olurdu.

Hem MySQLi hem de PDO'nun avantajları vardır:

PDO 12 farklı veritabanı sistemi üzerinde çalışacak, MySQLi ise sadece MySQL veritabanları ile çalışacak.

Bu nedenle, projenizi başka bir veritabanı kullanmak için değiştirmeniz gerekiyorsa, PDO işlemi kolaylaştırır. Yalnızca bağlantı dizesini ve birkaç sorguyu değiştirmeniz gerekir. MySQLi ile tüm kodu yeniden yazmanız gerekecek - sorgular dahil.

Her ikisi de nesne yönelimlidir, ancak MySQLi ayrıca prosedürel bir API sunar.

Her ikisi de Hazırlanan Açıklamaları destekler. Hazırlanan İfadeler SQL enjeksiyonundan korur ve web uygulama güvenliği için çok önemlidir.


Hem MySQLi hem de PDO Sözdiziminde MySQL Örnekleri

Bu ve sonraki bölümlerde PHP ve MySQL ile çalışmanın üç yolunu gösteriyoruz:

  • MySQLi (nesne yönelimli)
  • MySQLi (yordamsal)
  • PDO

MySQLi Kurulumu

Linux ve Windows için: MySQLi uzantısı çoğu durumda php5 mysql paketi kurulduğunda otomatik olarak kurulur.

Kurulum detayları için şu adrese gidin: http://php.net/manual/en/mysqli.installation.php


PDO Kurulumu

Kurulum detayları için şu adrese gidin: http://php.net/manual/en/pdo.installation.php



MySQL Bağlantısını Açın

MySQL veritabanındaki verilere erişmeden önce sunucuya bağlanabilmemiz gerekir:

Örnek (MySQLi Nesne Yönelimli)

<?php
$servername = "localhost";
$username = "username";
$password = "password";

// Create connection
$conn = new mysqli($servername, $username, $password);

// Check connection
if ($conn->connect_error) {
  die("Connection failed: " . $conn->connect_error);
}
echo "Connected successfully";
?>

Yukarıdaki nesne yönelimli örneğe dikkat edin:

$connect_error PHP 5.2.9 ve 5.3.0'a kadar bozuldu. 5.2.9 ve 5.3.0'dan önceki PHP sürümleriyle uyumluluğu sağlamanız gerekiyorsa, bunun yerine aşağıdaki kodu kullanın:

// Bağlantıyı kontrol edin
if (mysqli_connect_error()) {
  die("Veritabanı bağlantısı başarısız: " .mysqli_connect_error());
}

Örnek (MySQLi Prosedürü)

<?php
$servername = "localhost";
$username = "username";
$password = "password";

// Create connection
$conn = mysqli_connect($servername, $username, $password);

// Check connection
if (!$conn) {
  die("Connection failed: " . mysqli_connect_error());
}
echo "Connected successfully";
?>

Örnek (PDO)

<?php
$servername = "localhost";
$username = "username";
$password = "password";

try {
  $conn = new PDO("mysql:host=$servername;dbname=myDB", $username, $password);
  // set the PDO error mode to exception
  $conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
  echo "Connected successfully";
} catch(PDOException $e) {
  echo "Connection failed: " . $e->getMessage();
}
?>

Not: Yukarıdaki PDO örneğinde ayrıca bir veritabanı (myDB) belirledik . PDO, bağlanmak için geçerli bir veritabanı gerektirir. Veritabanı belirtilmezse, bir istisna atılır.

İpucu: PDO'nun büyük bir yararı, veritabanı sorgularımızda meydana gelebilecek sorunları çözmek için bir istisna sınıfına sahip olmasıdır. try{ } bloğu içinde bir istisna atılırsa, komut dosyası yürütmeyi durdurur ve doğrudan ilk catch(){ } bloğuna akar.


Bağlantıyı Kapat

Komut dosyası sona erdiğinde bağlantı otomatik olarak kapatılacaktır. Bağlantıyı daha önce kapatmak için aşağıdakileri kullanın:

MySQLi Nesne Yönelimli:

$conn->close();

MySQLi Prosedürü:

mysqli_close($conn);

PDO:

$conn = null;