Well I’m now back to PHP land for a few projects and after working with the Rails framework and Phyton my PHP code didn’t look quite nice.
So I decided to code a better driver for my favorite Database Server which is Firebird. It’s very basic but it does have a SQL generator as well support for stored procedures.
Theres two main files class.dbrecord.php which contains all the methods to communicate with the Firebird driver. And class.firebird.php which has all the Database methods. There’s also a file called db.php where you can configure various development enviroments.
Here’s how it works:
Initialize a Database connection.
require 'class.dbrecord.php';
//we initialize a connection
$db = new DbRecord;
We create a user.
//NAME is the name of our table in the Database
$db->NAME = 'guillermo';
$db->PASSWORD = 'mypassword';
$db->USER_NAME = 'guille';
$table_name = 'users';
$db->insertRecord($table_name);
We fetch user.
$table_name = 'users';
$result = $db->getAllRecords($table_name);
print_r($result);
echo $result[0][NAME];
We update user.
$table_name = 'users';
$db->ID = '1';
$db->NAME = 'john';
$db->updateRecord($table_name);
We delete user.
$table_name = 'users';
$db->ID = '1';
$db->deleteRecord($table_name);
Let’s use a stored procedure.
$sp_name = 'new_user';
$name = 'guillermo';
$username = 'guille';
$pass = 'mypassword';
$db->h = array($name,$username,$pass);
$db->procedure($sp_name,'execute');
Also you can define your Database connection
$db1 = new DbRecord(false,'pass1','user1','db1','localhost','UNICODE_FSS',3);
$db2 = new DbRecord(false,'pass2','user2','db2','localhost','UNICODE_FSS',3);
Caveats
- The sql generator is not near perfect is still needs work done.
- A Weird bug with my version of PHP and ibase_prepare seems it does not like placeholders.