12.8 The InterBase Module


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]; } ?> 

Explanation

The 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.



PHP Developer's Cookbook
PHP Developers Cookbook (2nd Edition)
ISBN: 0672323257
EAN: 2147483647
Year: 2000
Pages: 351

flylib.com © 2008-2017.
If you may any questions please contact us: flylib@qtcs.net