Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- // These would normally come from an include file...
- $db_path = '/var/lib/firebird/2.5/data/MyDatabase.fdb';
- $db_user = 'SYSDBA';
- $db_pass = 'masterkey';
- // use php error handling
- try {
- $dbh = ibase_connect( $db_path, $db_user, $db_pass );
- // Failure to connect
- if ( !$dbh ) {
- throw new Exception( 'Failed to connect to database because: ' . ibase_errmsg(), ibase_errcode() );
- }
- $th = ibase_trans( $dbh, IBASE_READ+IBASE_COMMITTED+IBASE_REC_NO_VERSION);
- if ( !$th ) {
- throw new Exception( 'Unable to create new transaction because: ' . ibase_errmsg(), ibase_errcode() );
- }
- $qs = 'select FIELD1, FIELD2, from SOMETABLE order by FIELD1';
- $qh = ibase_query( $th, $qs );
- if ( !$qh ) {
- throw new Exception( 'Unable to process query because: ' . ibase_errmsg(), ibase_errcode() );
- }
- $rows = array();
- while ( $row = ibase_fetch_object( $qh ) ) {
- $rows[] = $row->NODE;
- }
- // $rows[] now holds results. If there were any.
- // Even though nothing was changed the transaction must be
- // closed. Commit vs Rollback - question of style, but Commit
- // is encouraged. And there shouldn't <gasp>used the S word</gasp>
- // be an error for a read-only commit...
- if ( !ibase_commit( $th ) ) {
- throw new Exception( 'Unable to commit transaction because: ' . ibase_errmsg(), ibase_errcode() );
- }
- // Good form would dictate error traps for these next two...
- // ...but these are the least likely to break...
- // and my fingers are getting tired.
- // Release PHP memory for the result set, and formally
- // close the database connection.
- ibase_free_result( $qh );
- ibase_close( $dbh );
- } catch ( Exception $e ) {
- echo "Caught exception: $en";
- }
- // do whatever you need to do with rows[] here...
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement