PHP 5 ve sonraki bir MySQL veritabanı kullanarak çalışabilirsiniz:
- MySQLi uzantı (the "i" stands for improved)
- PDO (PHP Data Objects)
PHP önceki sürümleri MySQL uzantısı kullanılır. Ancak, bu uzantı 2012 yılında kaldırıldı.
Ben MySQLi veya PDO kullanın mı?
Kısa bir cevap almak istiyorsanız olurdu "Whatever you like" .
MySQLi ve PDO Hem onların avantajları vardır:
PDO MySQLi sadece MySQL veritabanları ile çalışacak şekilde 12 farklı veritabanı sistemleri üzerinde çalışacak.
Başka bir veritabanını kullanmak için projenizi geçmek zorunda Yani, PDO işlemi kolaylaştırır. Yalnızca bağlantı dizesini ve birkaç sorguları değiştirmek zorunda. MySQLi ile, tüm kodu yeniden yazmak gerekir - sorguları dahil.
Her iki nesne yönelimli, ama MySQLi da usul API sunmaktadır.
Hem Hazırlanan İfadeleri destekler. Hazırlanan Tablolar SQL enjeksiyonu korumak ve web uygulama güvenliği için çok önemlidir.
MySQLi ve PDO sözdizimi Hem MySQL Örnekler
Bu ve bunun ilerleyen bölümlerde biz PHP ve MySQL ile çalışma üç yolu göstermektedir:
- MySQLi (object-oriented)
- MySQLi (procedural)
- PDO
MySQLi Kurulum
Linux ve Windows için: MySQLi uzatma otomatik php5 mysql paketi yüklendikten çoğu durumda, yüklenir.
Kurulum ayrıntıları için şu adrese gidin: http://php.net/manual/en/mysqli.installation.php
PDO Kurulum
Kurulum ayrıntıları için şu adrese gidin: http://php.net/manual/en/pdo.installation.php
MySQL için Bir Bağlantı aç
MySQL veritabanı verilere erişmek için, önce biz sunucusuna bağlanmak için gerekiyor:
Örnek (MySQLi Object-Oriented)
<?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 örnek ilişkin not: $ connect_error PHP 5.2.9 ve 5.3.0 kadar kırıldı. Eğer 5.2.9 ve 5.3.0 öncesinde PHP sürümleri ile uyumluluğu sağlamak için gerekiyorsa, aşağıdaki kodu yerine kullanın:
// bağlantısını kontrol
Eğer ( mysqli_connect_error() ) {
die("Database connection failed: " . mysqli_connect_error() );
}
Örnek (MySQLi Procedural)
<?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();
}
?>
Biz de bir veritabanı belirttiniz yukarıdaki PDO örnekte dikkat edin (myDB) . PDO bağlanmak için geçerli bir veritabanı gerektirir. Hiçbir veritabanı belirtilmemişse, bir istisna atılır.
İpucu: PDO büyük yararı bizim veritabanı sorguları oluşabilecek herhangi bir sorun ele bir istisna sınıfı olmasıdır. Bir istisna try {} bloğu içerisinde oluşmuş ise, komut yürütme durur ve ilk doğrudan akar catch() {} bloğu.
Bağlantı kapatın
komut sona erdiğinde bağlantısı otomatik olarak kapatılır. önce bağlantıyı kapatmak için aşağıdakileri kullanın:
Örnek (MySQLi Object-Oriented)
$conn->close();
Örnek (MySQLi Procedural)
mysqli_close($conn);
Örnek (PDO)
$conn = null;