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 Evrensel Veritabanına, Cloudscape ve Apache Derby sunucularına özgür DB2 Express-C istemcisi üzerinden erişimi destekler.
Veritabanı sunucularına unixODBC sürücüsü yöneticisi ve veritabanının kendi ODBC sürücüleri üzerinden erişimi destekler.
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.
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ı:
./configure --with-pdo-odbc=ibm-db2,/opt/IBM/db2/V8.1/
configure komutuna DB2 kütüphaneleri ve başlıkları için bir konum belirtmezseniz /home/db2inst1/sqllib dizini öntanımlıdır.
./configure --with-pdo-odbc=unixODBC,/usr/local
./configure --with-pdo-odbc=generic,/usr/local,libname,ldflags,cflags
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)
This option controls whether the ODBC cursor library is used. The ODBC cursor library supports some advanced ODBC features (e.g. block scrollable cursors), which may not be implemented by the driver. The following values are supported:
PDO::ODBC_SQL_USE_IF_NEEDED
(the default):
use the ODBC cursor library when needed.
PDO::ODBC_SQL_USE_DRIVER
:
never use the ODBC cursor library.
PDO::ODBC_SQL_USE_ODBC
:
always use the ODBC cursor library.
PDO::ODBC_ATTR_ASSUME_UTF8
(bool)
Windows only. If true
, UTF-16 encoded character data (CHAR
,
VARCHAR
and LONGVARCHAR
) is converted to
UTF-8 when reading from or writing data to the database.
If false
(the default), character encoding conversion may be done by the driver.
Bu işlevlerin davranışı php.ini içindeki ayarlardan etkilenir.
İ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. |
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.
relaxed
eşleştirmesi güvenlik sebebiyle bir
paylaşımlı sunucuda kullanılmamalıdır.
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.