Hi,
I have developed a version of the Yii Database Schema for Firebird.
The work has been based on PostgreSQL schema.
Until now the Schema is able to SELECT, but some features like applyLimit are still not working, and no INSERT, UPDATE or DELETE is working, because of a PDO bug.
The bug is with the Firebird PDO Driver "bindValue" and "bindParam" methods.
So I will have to wait until this bug is fixed to continue the coding.
I still need to optimize some SQLs and test with all data types available.
Below you will find a list of the changes I did and attached are the 4 files.
- /framework/db/CDbConnection.php -> getSchema()
switch(strtolower($driver))
{
case 'firebird': // Firebird
return $this->_schema=new CFirebirdSchema($this);
- /framework/db/YiiBase.php
private static $_coreClasses=array(
'CFirebirdColumnSchema' => '/db/schema/firebird/CFirebirdColumnSchema.php',
'CFirebirdCommandBuilder' => '/db/schema/firebird/CFirebirdCommandBuilder.php',
'CFirebirdSchema' => '/db/schema/firebird/CFirebirdSchema.php',
'CFirebirdTableSchema' => '/db/schema/firebird/CFirebirdTableSchema.php',
- /framework/db/schema/firebird
CFirebirdColumnSchema.php
CFirebirdCommandBuilder.php
CFirebirdSchema.php
CFirebirdTableSchema.php
- IMPORTANT NOTICEs
a) PHP 5.2.10 is mandatory because of the following bug:
http://bugs.php.net/bug.php?id=47845
Firebird PDO “bindValue” or “bindParam” do not work if we use “:parameter”,
but do work if we use "?".
I have reported this error to PHP.NET:
http://bugs.php.net/bug.php?id=48877
"bindValue" and "bindParam" do not work for PDO Firebird