MySQL (PDO_MYSQL) İşlevleri

Giriş

PDO_MYSQL, PHP Veri Nesneleri Arayüzünün (PDO) MySQL 3.x, 4.x ve 5.x veritabanlarına erişimini mümkün kılmak için gerçeklenmiş bir sürücüdür.

PDO_MYSQL eklentisi, MySQL'in 4.1 ve üstü sürümlerinde bulunan yerleşik hazır deyim desteğinden de yararlanır. MySQL'in daha eski istemci kütüphanelerini kullanıyorsanız PDO bu desteği sizin için kendisi sağlayacaktır.

Uyarı

Dikkat: Bazı MySQL tablo türleri (saklama motorları) toplu hareketleri desteklemez. Bir veritabanını kodlarken toplu hareketleri desteklemeyen bir tablo türünü kullanıyorsanız MySQL toplu hareketi başarıyla ilklendirmiş gibi yapar. Ayrıca, DDL sorguları, bekleyen toplu hareketlerin örtük olarak yerine getirilmesine de sebep olur.

Öntanımlı Sabitler

Bu sabitler bu sürücü tarafından tanımlanmış olup, sadece eklentinin PHP içinde derlenmiş olması veya çalışma anında dinamik olarak yüklenmesi halinde kullanılabilir. Ek olarak, bu sürücüye özgü sabitler sadece bu sürücü kullanılıyorsa kullanılmalıdır. Sürücüye özgü özniteliklerin postgres sürücüsü ile kullanılması beklenmedik davranışlara yol açabilir. Eğer kodunuz çok sayıda sürücüye karşı çalışıyorsa sürücüyü sınayacak PDO::ATTR_DRIVER_NAME özniteliğini sağlamak için PDO::getAttribute() kullanılabilir.

PDO::MYSQL_ATTR_USE_BUFFERED_QUERY (int)
Bu özniteliğe bir PDOStatement nesnesinde true atanırsa MySQL sürücüsü MySQL arayüzünün tamponlu sürümlerini kullanır. Taşınabilir bir kod yazıyorsanız bunu yapmak yerine PDOStatement::fetchAll() yöntemini kullanın.

Örnek 1 - Sorguların tamponlanmasına zorlamak

<?php
if ($db->getAttribute(PDO::ATTR_DRIVER_NAME) == 'mysql') {
    
$stmt $db->prepare('select * from foo',
        array(
PDO::MYSQL_ATTR_USE_BUFFERED_QUERY => true));
} else {
    die(
"Bu uygulama sadece MySQL ile çalışır; " .
        
"yerine \$stmt->fetchAll() kullanılmalıydı");
}
?>

PDO::MYSQL_ATTR_LOCAL_INFILE (int)

LOAD LOCAL INFILE etkin olur.

Bu sabitin, yeni bir veritabanı tanıtıcısı oluştururken yalnızca driver_options dizisinde kullanılabileceğini unutmayın.

PDO::MYSQL_ATTR_LOCAL_INFILE_DIRECTORY (string)

LOCAL DATA yüklemesinin bu belirlenmiş dizinde bulunan dosyalarla sınırlanmasına izin verir.

Bu sabitin, yeni bir veritabanı tanıtıcısı oluştururken yalnızca driver_options dizisinde kullanılabileceğini unutmayın.

PDO::MYSQL_ATTR_INIT_COMMAND (int)

MySQL sunucusuna bağlanırken çalıştırılacak komut. Yeniden bağlantı sırasında otomatik olarak bu komut çalıştırılır.

Bu sabitin, yeni bir veritabanı tanıtıcısı oluştururken yalnızca driver_options dizisinde kullanılabileceğini unutmayın.

PDO::MYSQL_ATTR_READ_DEFAULT_FILE (int)

Seçenekler my.cnf yerine burada belirtilen dosyadan okunur. Bu seçenek, mysqlnd ile kullanılamaz, çünkü mysqlnd, mysql yapılandırma dosyalarını okumaz.

PDO::MYSQL_ATTR_READ_DEFAULT_GROUP (int)

Seçenekler my.cnf dosyasında belirtilen gruptan veya MYSQL_READ_DEFAULT_FILE ile belirtilen dosyadan okunur. Bu seçenek, mysqlnd ile kullanılamaz, çünkü mysqlnd, mysql yapılandırma dosyalarını okumaz.

PDO::MYSQL_ATTR_MAX_BUFFER_SIZE (int)

Azami tampon büyüklüğü; 1 MiB öntanımlıdır. Derleme mysqlnd'ye rağmen yapıldığında bu sabit desteklenmez.

PDO::MYSQL_ATTR_DIRECT_QUERY (int)

Hazır deyimler kullanılmaz, sorgular doğrudan çalıştırılır.

PDO::MYSQL_ATTR_FOUND_ROWS (int)

Değişen satırların değil, bulunan (eşleşen) satırların satısı döner.

PDO::MYSQL_ATTR_IGNORE_SPACE (int)

İşlev isimlerinden sonra boşluklara izin verir. Tüm işlev isimlerini ayrılmış sözcük haline getirir.

PDO::MYSQL_ATTR_COMPRESS (int)

Ağ iletişim sıkıştırmasını etkin kılar.

PDO::MYSQL_ATTR_SSL_CA (int)

SSL sertifika yetkilisinin dosya yolu.

PDO::MYSQL_ATTR_SSL_CAPATH (int)

PEM biçiminde saklanan güvenilir SSL CA sertifikalarını içeren dizinin dosya yolu.

PDO::MYSQL_ATTR_SSL_CERT (int)

SSL sertifikasının dosya yolu.

PDO::MYSQL_ATTR_SSL_CIPHER (int)

OpenSSL tarafından anlaşılan biçemde, SSL şifrelemesi için kullanılmasına izin verilen bir veya daha fazla şifrenin listesi. Örnek: DHE-RSA-AES256-SHA:AES128-SHA

PDO::MYSQL_ATTR_SSL_KEY (int)

SSL anahtarının dosya yolu.

PDO::MYSQL_ATTR_SSL_VERIFY_SERVER_CERT (int)

Sunucu SSL sertifikasının doğrulanmasını devre dışı bırakmanın bir yolunu sağlar.

Mevcut olduğu PHP sürümleri: 7.0.18 ve PHP 7.1.4.

PDO::MYSQL_ATTR_MULTI_STATEMENTS (int)

false olarak ayarlandığında hem PDO::prepare() hem de PDO::query() işlevinde çoklu sorgu yürütmesini devre dışı bırakır.

Bu sabitin, yeni bir veritabanı tanıtıcısı oluştururken yalnızca driver_options dizisinde kullanılabileceğini unutmayın.

İçindekiler