InterBase has until recently been a closed source database developed by Borland. But InterBase has lately joined the open source movement. More information about InterBase can be found at http://www.interbase.com/. DB/interbase.php <?php function _db_ibase_connect($args=array(), $connfunc) { switch (count($args)) { case 1: return @$connfunc($args[0]); case 2: return @$connfunc($args[0], $args[1]); case 3: return @$connfunc($args[0], $args[1], $args[2]); case 4: return @$connfunc($args[0], $args[1], $args[2], $args[3]); case 5: return @$connfunc($args[0], $args[1], $args[2], $args[3], $args[4]); case 6: return @$connfunc($args[0], $args[1], $args[2], $args[3], $args[4], $args[5]); default: return @$connfunc($args[0], $args[1], $args[2], $args[3], $args[4], $args[5], $args[6]); } } function db_connect($args=array()) { _db_ibase_connect($args, "ibase_connect"); } function db_pconnect($args=array()) { _db_ibase_connect($args, "ibase_pconnect"); } function db_select_db($args=array()) { return(true); } function db_close($args=array()) { return @ibase_close($args[0]); } function db_query($args=array()) { return @ibase_query($args[0], $args[1]); } function db_db_query($args=array()) { return @ibase_query($args[0], $args[1]); } function &db_fetchrow ($args=array()) { if ($args[1] == DB_GETMODE_ASSOC) { return (array)@ibase_fetch_object($args[0], IBASE_ASSOC); } return (array)@ibase_fetch_object($args[0]); } function db_prepare ($args=array()) { if (isset($args[1])) { return @ibase_prepare($args[0], $args[1]); } return @ibase_prepare($args[0]); } function db_execute($args=array()) { if (isset($args[1])) { return @ibase_execute($args[0], $args[1]); } return @ibase_execute($args[0]); } function db_num_rows ($args=array()) { return @ibase_num_fields($args[0]); } function db_commit($args=array()) { if (isset($args[1])) { return @ibase_commit($args[0], $args[1]); } return @ibase_commit($args[0]); } function db_rollback($args=array()) { if (isset($args[1])) { return @ibase_rollback($args[0], $args[1]); } return @ibase_rollback($args[0]); } function db_autoCommit($args=array()) { return $args[1]; } ?> ExplanationThe InterBase module is just like all the other modules we've discussed ”except for one oddity: It doesn't have a fetch_array() function. Therefore, in the db_fetchrow() function, we cast the return value of ibase_fetch_object() to an array that converts the object's properties into the indexes of an associative array. |