|
Firebird/InterBase FunctionsFirebird/InterBase is a relational database offering many ANSI SQL-92 features that runs on Linux, Windows, and a variety of Unix platforms. Firebird/InterBase offers excellent concurrency, high performance, and powerful language support for stored procedures and triggers. It has been used in production systems, under a variety of names since 1981. InterBase is the name of the closed-source variant of this RDBMS that was developed by Borland/Inprise. More information about InterBase is available at » http://www.borland.com/interbase/. Firebird is a commercially independent project of C and C++ programmers, technical advisors and supporters developing and enhancing a multi-platform relational database management system based on the source code released by Inprise Corp (now known as Borland Software Corp) under the InterBase Public License v.1.0 on 25 July, 2000. More information about Firebird is available at » http://www.firebirdsql.org/.
Note:
This extension supports InterBase versions 5 and up and all versions of Firebird. Support for InterBase version 5.x will be dropped in PHP 5.
This database uses a single quote (') character for escaping, a
behavior similar to the Sybase database, add to your
magic_quotes_sybase = On ?>
To enable InterBase support configure PHP
Note to Win32 Users:
In order for this extension to work, there are
DLL files that must be available to the Windows
system
In case you installed the InterBase database server on the
same machine PHP is running on, you will have this DLL already. Therefore you don't
need to worry because
The behaviour of these functions is affected by settings in Table 97. InterBase configuration options
Here's a short explanation of the configuration directives.
The constants below are defined by this extension, and will only be available when the extension has either been compiled into PHP or dynamically loaded at runtime. The following constants can be passed to ibase_trans() to specify transaction behaviour. Table 98. Firebird/InterBase transaction flags
The following constants can be passed to ibase_fetch_row(), ibase_fetch_assoc() or ibase_fetch_object() to specify fetch behaviour. Table 99. Firebird/InterBase fetch flags
The following constants are used to pass requests and options to the service API functions (ibase_server_info(), ibase_db_info(), ibase_backup(), ibase_restore() and ibase_maintain_db()). Please refer to the Firebird/InterBase manuals for the meaning of these options.
Table of Contents
Code Examples / Notes » ref.ibasesysop
This example have 2 problems my be the autor writes it to fast but in the first case use one var for define user pass and and the use other one for call them and in secon step use comas after the ; $db = '/path/to/database.gdb'; $user = 'username'; $password = 'password'; $res = ibase_connect($db,$dbuser,$dbpass) or die(" " . ibase_errmsg()); // Query $sql="SELECT * FROM table;" chrisg
Simple function to retrieve the results of an SQL statement into an array, will also cater for BLOB fields: function interbase_sql_exec ($sql) { $dataArr = array(); $host = "svrname:path\filename.GDB"; $username = "whatever"; $password = "******"; $connection = ibase_connect ($host, $username, $password,'ISO8859_1', '100', '1'); $rid = @ibase_query ($connection, $sql); if ($rid===false) errorHandle(ibase_errmsg(),$sql); $coln = ibase_num_fields($rid); $blobFields = array(); for ($i=0; $i < $coln; $i++) { $col_info = ibase_field_info($rid, $i); if ($col_info["type"]=="BLOB") $blobFields[$i] = $col_info["name"]; } while ($row = ibase_fetch_row ($rid)) { foreach ($blobFields as $field_num=>$field_name) { $blobid = ibase_blob_open($row[$field_num]); $row[$field_num] = ibase_blob_get($blobid,102400); ibase_blob_close($blobid); } $dataArr[] = $row; } ibase_close ($connection); return $dataArr; } lars
It is not possible to use interbase/firebird without initiating transactions. It seems that transactions are not automatically committed or rolled back at the end of a script, so remember to end all interbase enabled scripts with ibase_rollback() or ibase_commit(). Worse is, that if you use ibase_pconnect (recommended), transactions survive from one request to the next. So that if you don't rollback your transaction at the end of the script, another user's request might continue the transaction that the first request opened. This has two implications: 1) Clicking refresh in your browser won't make you see newer data, because you still watch data from the same transaction. 2) Some php scripts might fail occassionally and not fail in other occasions, depending on with apache server thread and thereby which transaction they start using. Unfortunately, there is no such thing as if (ibase_intransaction()) ibase_rollback(); so be sure that ALL your scripts end with an ibase_rollback() or ibase_commit(); interbase
If you are using VirtualHosts with Apache, you might find useful the following directive: php_flag magic_quotes_sybase on Use it in any VirtualHost and it will be set locally to that VirtualHost without interfering with any global setting. This is an example: <VirtualHost 555.666.777.888> ServerName www.samplehost.com DirectoryIndex index.php index.htm php_flag magic_quotes_sybase on </VirtualHost> felixlee
Here's an example for getting results back from stored procedure in firebird. The example make use of the stored procedure in Employee.gdb and the show_langs procedure. $host = 'localhost:X:/firebird/examples/Employee.gdb'; $username='SYSDBA'; $password='masterkey'; $dbh = ibase_connect ( $host, $username, $password ) or die ("error in db connect"); $stmt="Select * from SHOW_LANGS('SRep',4,'Italy')"; $query = ibase_prepare($stmt); $rs=ibase_execute($query); $row = ibase_fetch_row($rs); echo $row[0]; /* free result */ ibase_free_query($query); ibase_free_result($rs); /* close db */ ibase_close($dbh); ?> fortega
Here is a minimalistic code example. Be sure to create an user and a database in order to make it work. <?php // Minimalistic code example // Connection $db = '/path/to/database.gdb'; $user = 'username'; $password = 'password'; $res = ibase_connect($db,$dbuser,$dbpass) or die(" " . ibase_errmsg()); // Query $sql="SELECT * FROM table;" $result=ibase_query($res,$sql) or die(ibase_errmsg()); while($row=ibase_fetch_object($result)){ // use $row->FIELDNAME not $row->fieldname print $row->FIELDNAME; } ibase_free_result($result); // Closing ibase_close($res) or die(" " . ibase_errmsg()); ?> The following code can be used when creating tables in order to get auto incrementing fields: <?php // This function generates an autoincrement field, such as MySQL AUTO_INCREMENT. function generate_autoincrement($tablename,$primarykey){ // * Generator dbexec('CREATE GENERATOR GEN_' . $tablename . '_PK;'); // * Trigger dbexec('CREATE TRIGGER INC_' . $primarykey . ' FOR ' . $tablename . chr(13) . 'ACTIVE BEFORE INSERT POSITION 0' . chr(13) . 'AS' . chr(13) . 'BEGIN' . chr(13) . 'IF (NEW.' . $primarykey . ' IS NULL) THEN' . chr(13) . 'NEW.' . $primarykey . '= GEN_ID(GEN_' . $tablename . '_PK, 1);' . chr(13) . 'END'); } ?> Usage: <?php generate_autoincrement('table','column name'); ?> theynich_s
Hello PHP Mania, i have made a paging for PHP with Interbase...... :) i hope it usefull and work....:) it`s a litle bit of example : <? $connection = ibase_connect($yourdb, $user, $password); $filename = BASENAME(__FILE__); $strsql = "Your SQL"; $result = ibase_query($connection, $strsql); function ibase_num_rows($query) { //I have pick it from bg_idol@hotmail.com $i = 0; while (ibase_fetch_row($query)) { $i++; } return $i; } $nrow = ibase_num_rows($result);//sum of row $strSQL = "your SQL"; $result = ibase_query($connection, $strSQL); if (!isset($page)) $page = 1; $$i = 0; $recperpage = 4; $norecord = ($page - 1) * $recperpage; if ($norecord){ $j=0; while($j < $norecord and list($code, $name)= ibase_fetch_row($result)){ $j++; } } echo "<table>"; while (list($code, $name)= ibase_fetch_row($result) and $i < $recperpage){ ?> <tr> <td width="5%"><? echo $code; ?></td> <td><? echo $name; ?></td> </tr> <? $i++; } $incr = $page + 1; if ($page > 1) $decr = $page - 1; $numOfPage = ceil($nrow/$recperpage); ?> <tr> <td colspan="3" align="center"><?if ($page <= 1) echo "<span>Prev</span>"; else echo "<a href=".$filename."?page=".$decr.">Prev</a>"; ?> <?if ($page == $numOfPage) echo "<span>Next</span>"; else echo "<a href=".$filename."?page=".$incr.">Next</a>";?> </td> </tr> </table> johan
For those who have problem with returning values from Stored Procedures in PHP-Interbase, I have found a solution. Use a select sentence like this: select * from sp_prodecure(param, ...) However, it is important that the procedure has a SUSPEND statement or else the procedure won't return any values. But the "message length" (see above note) bug that you encounter when you try to execute a procedure should be fixed ! |
Change Language.NET Functions Apache-specific Functions Alternative PHP Cache Advanced PHP debugger Array Functions Aspell functions [deprecated] BBCode Functions BCMath Arbitrary Precision Mathematics Functions PHP bytecode Compiler Bzip2 Compression Functions Calendar Functions CCVS API Functions [deprecated] Class/Object Functions Classkit Functions ClibPDF Functions [deprecated] COM and .Net (Windows) Crack Functions Character Type Functions CURL Cybercash Payment Functions Credit Mutuel CyberMUT functions Cyrus IMAP administration Functions Date and Time Functions DB++ Functions Database (dbm-style) Abstraction Layer Functions dBase Functions DBM Functions [deprecated] dbx Functions Direct IO Functions Directory Functions DOM Functions DOM XML Functions enchant Functions Error Handling and Logging Functions Exif Functions Expect Functions File Alteration Monitor Functions Forms Data Format Functions Fileinfo Functions filePro Functions Filesystem Functions Filter Functions Firebird/InterBase Functions Firebird/Interbase Functions (PDO_FIREBIRD) FriBiDi Functions FrontBase Functions FTP Functions Function Handling Functions GeoIP Functions Gettext Functions GMP Functions gnupg Functions Net_Gopher Haru PDF Functions hash Functions HTTP Hyperwave Functions Hyperwave API Functions i18n Functions IBM Functions (PDO_IBM) IBM DB2 iconv Functions ID3 Functions IIS Administration Functions Image Functions Imagick Image Library IMAP Informix Functions Informix Functions (PDO_INFORMIX) Ingres II Functions IRC Gateway Functions PHP / Java Integration JSON Functions KADM5 LDAP Functions libxml Functions Lotus Notes Functions LZF Functions Mail Functions Mailparse Functions Mathematical Functions MaxDB PHP Extension MCAL Functions Mcrypt Encryption Functions MCVE (Monetra) Payment Functions Memcache Functions Mhash Functions Mimetype Functions Ming functions for Flash Miscellaneous Functions mnoGoSearch Functions Microsoft SQL Server Functions Microsoft SQL Server and Sybase Functions (PDO_DBLIB) Mohawk Software Session Handler Functions mSQL Functions Multibyte String Functions muscat Functions MySQL Functions MySQL Functions (PDO_MYSQL) MySQL Improved Extension Ncurses Terminal Screen Control Functions Network Functions Newt Functions NSAPI-specific Functions Object Aggregation/Composition Functions Object property and method call overloading Oracle Functions ODBC Functions (Unified) ODBC and DB2 Functions (PDO_ODBC) oggvorbis OpenAL Audio Bindings OpenSSL Functions Oracle Functions [deprecated] Oracle Functions (PDO_OCI) Output Control Functions Ovrimos SQL Functions Paradox File Access Parsekit Functions Process Control Functions Regular Expression Functions (Perl-Compatible) PDF Functions PDO Functions Phar archive stream and classes PHP Options&Information POSIX Functions Regular Expression Functions (POSIX Extended) PostgreSQL Functions PostgreSQL Functions (PDO_PGSQL) Printer Functions Program Execution Functions PostScript document creation Pspell Functions qtdom Functions Radius Rar Functions GNU Readline GNU Recode Functions RPM Header Reading Functions runkit Functions SAM - Simple Asynchronous Messaging Satellite CORBA client extension [deprecated] SCA Functions SDO Functions SDO XML Data Access Service Functions SDO Relational Data Access Service Functions Semaphore SESAM Database Functions PostgreSQL Session Save Handler Session Handling Functions Shared Memory Functions SimpleXML functions SNMP Functions SOAP Functions Socket Functions Standard PHP Library (SPL) Functions SQLite Functions SQLite Functions (PDO_SQLITE) Secure Shell2 Functions Statistics Functions Stream Functions String Functions Subversion Functions Shockwave Flash Functions Swish Functions Sybase Functions TCP Wrappers Functions Tidy Functions Tokenizer Functions Unicode Functions URL Functions Variable Handling Functions Verisign Payflow Pro Functions vpopmail Functions W32api Functions WDDX Functions win32ps Functions win32service Functions xattr Functions xdiff Functions XML Parser Functions XML-RPC Functions XMLReader functions XMLWriter Functions XSL functions XSLT Functions YAZ Functions YP/NIS Functions Zip File Functions Zlib Compression Functions |