ODBC is a Microsoft specification that enables developers to access many different databases through a single API (similar to what we're doing). You can also use PHP's ODBC functions to access IBM's DB2 databases directly. DB/odbc.php <?php function db_connect($args=array()) { if (isset($args[3])) { return @odbc_connect($args[0], $args[1]. $args[2], $args[3]); } return @odbc_connect($args[0], $args[1], $args[2]); } function db_pconnect($args=array()) { if (isset($args[3])) { return @odbc_pconnect($args[0], $args[1], $args[2], $args[3]); } return @odbc_pconnect($args[0], $args[1], $args[2]); } function db_select_db($args=array()) { return(true); } function db_close($args=array()) { return @odbc_close($args[0]); } function db_query($args=array()) { return @odbc_do($args[0], $args[1]); } function db_db_query($args=array()) { return db_query($args[0], $args[2]); } function &db_fetchrow($args=array()) { if ($args[1] == DB_GETMODE_ASSOC) { $rows = @odbc_fetch_array($args[0]); } else { @odbc_fetch_into($args[0], &$row); } return($row); } function db_prepare($args=array()) { return @odbc_prepare($args[0], $args[1]); } function db_execute($args=array()) { if (isset($args[1])) { return @odbc_execute($args[0], $args[1]); } return @odbc_execute($args[0], $args[1]); } function db_num_rows($args=array()) { return @odbc_num_rows($args[0]); } function db_free_result($args=array()) { return @odbc_free_result($args[0]); } function db_commit($args=array()) { return @odbc_commit($args[0]); } function db_rollback($args=array()) { return @odbc_rollback($args[0]); } function db_autoCommit($args=array()) { return @odbc_autocommit($args[0], $args[1]); } ?> ExplanationThe ODBC module is a pretty straightforward module to implement because it contains most of the common features (more than any of the other modules, actually). In fact, we don't even need to implement any of the functionality ourselves . |