The connection string for a firebird PDO connection is different than described above. It is something like:
$DB = new PDO("firebird:dbname=T:\\Klimreg.GDB", "SYSDBA", "masterkey");
after dbname= the default connection string for Interbase and Firebird databases is used as presented to either gds32.dll or fbclient.dll.
Firebird/Interbase (PDO_FIREBIRD) İşlevleri
Giriş
Bu eklenti DENEYSELDİR. Bu eklentinin davranışı, işlev isimleri ve tüm belgeleri PHP'nin sonraki sürümlerinde hiçbir duyuru yapılmaksızın değiştirilebilir. Bu riski göze alamayacaksanız bu eklentiyi kullanmayın.
Ö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 devingen olarak yüklenmesi halinde kullanılabilir. Ek olarak, bu
sürücüye özgü sabitler sadece bu sürücüyü kullanıyorsanız 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::FB_ATTR_DATE_FORMAT(integer) -
PHP 5.3.0'dan beri kullanılabilmektedir.
Tarih biçemini tanımlar.
-
PDO::FB_ATTR_TIME_FORMAT(integer) -
Tarih biçemini tanımlar.
PHP 5.3.0'dan beri kullanılabilmektedir.
-
PDO::FB_ATTR_TIMESTAMP_FORMAT(integer) -
Zaman damgası biçemini tanımlar.
PHP 5.3.0'dan beri kullanılabilmektedir.
İçindekiler
- PDO_FIREBIRD DSN — Firebird ve Interbase veritabanı bağlantısı
If you have a database alias on the server "localhost" called "test.fdb", you can do:
$conn = new PDO("firebird:dbname=localhost:test.fdb",
'SYSDBA','letmein');
Note that as of the time of writing, the Firebird driver doesn't correctly throw an exception on connection error
http://bugs.php.net/bug.php?id=41522
if youre dsn syntax is wrong, see ritsaert's comment, there maybe no errormessage!
After two days of trouble with no visibile issues, when rebooting the system two popups come up:
PHP Startup: Unable to load dynamic library
'c:/wamp/bin/php/php.5.3.13/ext/php_interbase.dll' - %1 non è un'applicazione di Win32 valida.
PHP Startup: Unable to load dynamic library
'c:/wamp/bin/php/php.5.3.13/ext/php_pdo_firebird.dll' - %1 non è un'applicazione di Win32 valida.
I've just re-installed wampserver (http://www.wampserver.com/en/) and all seems run well.
To see if your Firebird PDO driver runs well:
<?php
foreach(PDO::getAvailableDrivers() as $driver) {
echo $driver.'<br />';
}?>
Here's the quick guide how to compile pdo_firebird and run tests for the ubuntu:
1) setup firebird superclassic:
$ sudo apt-get install firebird2.5-superclassic firebird2.5-dev
firebird2.5-examples
superclassic is the server itself (if in doubt, read this: http://www.firebirdsql.org/file/documentation/reference_manuals/user_manuals/html/qsg25-classic-or-super.html), dev package contains headers to
compile pdo stuff, examples contains example db, i used it to run
tests in it.
Set up credentials for the server (see the link lower).
Get employee.fdb as written here
http://www.firebirdsql.org/manual/ubusetup.html to a some known and
writable path by your user (which tests will be run on).
2) make sure to compile php with following flags, you'll need interbase too (some
tests in pdo_firebird/tests need it)
./configure --enable-pdo --with-pdo-firebird --with-interbase
make
3) Run tests with environment variables that can be found in
ext/pdo_firebird/tests/common.phpt, I ran it like this:
$ PDO_FIREBIRD_TEST_DSN='firebird:dbname=/var/lib/firebird/2.5/data/employee.fdb'
PDO_FIREBIRD_TEST_USER='SYSDBA' PDO_FIREBIRD_TEST_PASS='masterkey'
TEST_PHP_EXECUTABLE=auto php -n ./run-tests.php ext/pdo_firebird
You're done!
After much trial and error i found out you should use the following to connect to a firebird database:
<?php
$db = new PDO ("firebird:dbname=localhost:C:\\path\\to\\database\\MyDatabase.FDB", "username", "password");
?>
NOTE: in the 1st part of the connection string there can be NO spaces else you will get NULL.
The string provided on this site does not work and will give no error only NULL.
