ODBC ve DB2 (PDO_ODBC) İşlevleri

Giriş

PDO_ODBC, PHP Veri Nesneleri Arayüzünün (PDO) veritabanlarına ODBC sürücüleri üzerinden veya IBM DB2 Çağrı Seviyesi Arayüzü (DB2 CLI) kütüphanesi üzerinden erişimi mümkün kılmak için gerçeklenmiş bir sürücüdür. PDO_ODBC şimdilik üç farklı lezzette veritabanı sürücüsünü desteklemektedir:

ibm-db2

IBM DB2 Evrensel Veritabanına, Cloudscape ve Apache Derby sunucularına özgür DB2 Express-C istemcisi üzerinden erişimi destekler.

unixODBC

Veritabanı sunucularına unixODBC sürücüsü yöneticisi ve veritabanının kendi ODBC sürücüleri üzerinden erişimi destekler.

soysal

PDO_ODBC tarafından açıkça desteklenmemiş ODBC sürücüsü yöneticileri için bir derleme seçeneği sağlar.

Windows'ta, php_pdo_odbc.dll php.ini içinde bir eklenti olarak etkinleştirilmelidir. Windows ODBC Sürücüsü Yöneticisi ile ilintili olduğundan PHP, Sistem DSN üzerinden kataloglanan veritabanlarına erişebilir.

Kurulum

UNIX sistemlerinde PDO_ODBC
  1. PDO_ODBC, PHP kaynak paketiyle gelmektedir. PDO_ODBC eklentisini statik veya paylaşımlı bir modül olarak derlemek için kullanacağınız configure komutları:

    ibm_db2

    ./configure --with-pdo-odbc=ibm-db2,/opt/IBM/db2/V8.1/
    
    PDO_ODBC eklentisini ibm-db2 desteğiyle derlemek için DB2 uygulama geliştirme başlık dosyalarını, PDO_ODBC'yi derlediğiniz makineye kurmuş olmalısınız. DB2 uygulama geliştirme başlık dosyaları DB2 sunucularında kurulabilir bir seçenek olup ayrıca, DB2 Uygulama geliştirme istemcisinin bir parçası olarak » IBM developerWorks sitesinden özgürce indirilebilmektedir.

    configure komutuna DB2 kütüphaneleri ve başlıkları için bir konum belirtmezseniz /home/db2inst1/sqllib dizini öntanımlıdır.

    unixODBC

    ./configure --with-pdo-odbc=unixODBC,/usr/local
    
    configure komutuna unixODBC kütüphaneleri ve başlıkları için bir konum belirtmezseniz /usr/local dizini öntanımlıdır.

    soysal
    ./configure --with-pdo-odbc=generic,/usr/local,libname,ldflags,cflags
    

Ö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_ODBC_TYPE (string)

PDO::ODBC_ATTR_USE_CURSOR_LIBRARY (int)
Takma Adı: Pdo\Odbc::ATTR_USE_CURSOR_LIBRARY.
PDO::ODBC_SQL_USE_IF_NEEDED (int)
Takma Adı: Pdo\Odbc::SQL_USE_IF_NEEDED.
PDO::ODBC_SQL_USE_DRIVER (int)
Takma Adı: Pdo\Odbc::SQL_USE_DRIVER.
PDO::ODBC_SQL_USE_ODBC (int)
Takma Adı: Pdo\Odbc::SQL_USE_ODBC.
PDO::ODBC_ATTR_ASSUME_UTF8 (bool)
Takma Adı: Pdo\Odbc::ATTR_ASSUME_UTF8.

Çalışma Anı Yapılandırması

Bu işlevlerin davranışı php.ini içindeki ayarlardan etkilenir.

PDO_ODBC Yapılandırma Yönergeleri
İsim Öntanımlı Değişlik Yeri Sürüm Bilgisi
pdo_odbc.connection_pooling "strict" INI_ALL  
pdo_odbc.db2_instance_name NULL INI_SYSTEM Bu kullanımı önerilmeyen özellik gelecekte kesinlikle KALDIRILACAKTIR.
INI_* kiplerinin tanımları ve ayrıntılı açıklamaları Yapılandırma ayarlarının yeri bölümünde bulunabilir.

Yapılandırma yönergelerinin kısa açıklamalarını aşağıda bulabilirsiniz.

pdo_odbc.connection_pooling string

ODBC bağlantılarının havuzlanıp havuzlanmayacağı. Şu değerlerden biri belirtilebilir: "strict" (katı), "relaxed" (esnek), "off" (kapalı; "" ile aynı). Değer, bağlantı yöneticisinin bağlantı bağımsız değişkenlerini mevcut havuzlu bağlantılarla nasıl eşleştireceğini belirler. strict önerilen öntanımlı değer olup, önbellekli bağlantıların sadece tüm bağlantı bağımsız değişkenleri eşleştiğinde kullanılacağı anlamına gelir. relaxed ise benzer bağlantı bağımsız değişkenlerine sahip bağlantıların kullanılabileceğini belirtir. Bunun olumsuz tarafı, örneğin sanal konaklar arasında bağlantı bilgisi kaçağı riski nedeniyle önbellek kullanımında bir artışla sonuçlanabilmesidir.

Bu ayar sadece php.ini dosyasında değiştirilebilir ve tüm süreci etkiler; ayrıca, aynı ODBC kütüphanelerini kullanan süreçlere yüklü diğer modüller de (Tektip ODBC eklentisi dahil) etkilenir.

Uyarı

relaxed eşleştirmesi güvenlik sebebiyle bir paylaşımlı sunucuda kullanılmamalıdır.

İpucu

Bu ayarı değiştirmek için iyi bir sebebiniz yoksa öntanımlı strict ayarına dokunmamanız önerilir.

pdo_odbc.db2_instance_name string

PDO_ODBC eklentisini db2 desteğiyle kullanıyorsanız, Linux ve UNIX işletim sistemlerinde DB2INSTANCE ortam değişkenine DB2 örneğinin burada belirtilen ismini atar. Böylece, PDO_ODBC eklentisinin DB2 veritabanlarına kataloglu bağlantılar kurması ve DB2 kütüphanelerinin yerlerini bulması sağlanmış olur.

Bu ayar sadece php.ini dosyasında değiştirilebilir ve tüm süreci etkiler; ayrıca, aynı ODBC kütüphanelerini kullanan süreçlere yüklü diğer modüller de (Tektip ODBC eklentisi dahil) etkilenir.

Bu ayarın Windows üzerinde bir etkisi yoktur.

İçindekiler