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("<br>" . ibase_errmsg());
// Query
$sql="SELECT * FROM table;"
Funkcje Firebird/InterBase
Spis treści
- ibase_add_user — Dodaje użytkownika do bazy danych bezpieczeństwa (tylko dla IB6 i późniejszych)
- ibase_affected_rows — Zwraca ilość wierszy przetworzonych przez ostatnie zapytanie
- ibase_backup — Uruchamia zadanie wykonania kopii zapasowej w Menedżerze Usługi i natychmiast powraca
- ibase_blob_add — Dodaje dane do nowo utworzonego BLOBa
- ibase_blob_cancel — Odwołuje tworzenie BLOBa
- ibase_blob_close — Zamyka BLOBa
- ibase_blob_create — Tworzy nowego BLOBa w celu umieszczenia w nim danych
- ibase_blob_echo — Wysyła zawartość BLOBa do przeglądarki
- ibase_blob_get — Pobiera X bajtów danych z otwartego BLOBa
- ibase_blob_import — Tworzy BLOBa, kopiuje do niego zawartość pliku i zamyka go.
- ibase_blob_info — Zwraca długość i inne informacje dotyczące BLOBa
- ibase_blob_open — Otwiera BLOBa w celu pobrania części danych
- ibase_close — Zamyka połączenie z serwerem Firebird/InterBase
- ibase_commit_ret — Potwierdza transakcję bez zamykania jej
- ibase_commit — Potwierdza transakcję
- ibase_connect — Otwiera połączenie z serwerem Firebird/InterBase
- ibase_db_info — Pobiera szczegółowe informacje o bazie danych
- ibase_delete_user — Usuwa użytkownika z bazy danych bezpieczeństwa (tylko dla IB6 i późniejszych)
- ibase_drop_db — Usuwa bazę danych Firebird/InterBase
- ibase_errcode — Zwraca kod błędu
- ibase_errmsg — Zwraca tekst komunikatu błędu
- ibase_execute — Wykonuje wcześniej przygotowane zapytanie
- ibase_fetch_assoc — Pobiera wiersz wyniku zapytania w postaci tablicy asocjacyjnej
- ibase_fetch_object — Pobiera wiersz wyniku zapytania w postaci obiektu
- ibase_fetch_row — Pobiera wiersz wyniku zapytania w postaci tablicy numerycznej
- ibase_field_info — Pobiera informację o polu
- ibase_free_event_handler — Odwołuje funkcję zarejestrowaną do obsługiwania zdarzeń
- ibase_free_query — Zwalnia pamięć zajmowaną przez przygotowane zapytanie
- ibase_free_result — Zwalnia pamięć zajmowaną przez wynik
- ibase_gen_id — Zwiększa generator i zwraca jego nową wartość
- ibase_maintain_db — Uruchamia polecenie konserwacyjne na serwerze baz danych
- ibase_modify_user — Modyfikuje użytkownika w bazie danych bezpieczeństwa (tylko dla IB6 i późniejszych)
- ibase_name_result — Przypisuje nazwę do zbioru wynikowego
- ibase_num_fields — Zwraca liczbę pól w zbiorze wynikowym
- ibase_num_params — Zwraca liczbę parametrów w przygotowanym zapytaniu
- ibase_param_info — Zwraca informację o parametrze w przygotowanym zapytaniu
- ibase_pconnect — Otwiera stałe połączenie z serwerem Firebird/InterBase
- ibase_prepare — Przygotowuje zapytanie do późniejszego dowiązania argumentów w postaci zmiennych i do wykonania
- ibase_query — Wykonuje zapytanie na serwerze Firebird/Interbase
- ibase_restore — Uruchamia zadanie przywrócenia bazy danych z kopii zapasowej w Menedżerze Usługi i natychmiast powraca
- ibase_rollback_ret — Wycofuje transakcję bez zamykania jej
- ibase_rollback — Wycofuje transakcję
- ibase_server_info — Pobiera informacje o serwerze baz danych
- ibase_service_attach — Łączy się do Menedżera Usługi
- ibase_service_detach — Odłącza się od Menedżera Usługi
- ibase_set_event_handler — Rejestruje funkcję zwrotną, wywoływaną podczas występowania zadarzeń
- ibase_timefmt — Ustawia format znacznika czasu, daty i czasu w typach kolum zwracanych przez zapytania
- ibase_trans — Rozpoczyna transakcję
- ibase_wait_event — Czeka na zdarzenie, które zostanie przesłane przez serwer
Funkcje Firebird/InterBase
sysop at smartnettechnologies dot com
25-Sep-2007 09:01
25-Sep-2007 09:01
fortega at uamericas dot net
01-Jul-2007 11:11
01-Jul-2007 11:11
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("<br>" . 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("<br>" . 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'); ?>
chrisg at cordell dot com dot au
04-Jun-2004 08:59
04-Jun-2004 08:59
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;
}
felixlee at singnet dot com dot sg
03-Jul-2003 08:33
03-Jul-2003 08:33
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);
?>
lars at dybdahl dot net
20-Sep-2002 04:32
20-Sep-2002 04:32
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 at almico dot com
05-Sep-2002 11:24
05-Sep-2002 11:24
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>
theynich_s at yahoo dot com
11-May-2002 08:16
11-May-2002 08:16
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 at essay dot org
07-Aug-2000 04:24
07-Aug-2000 04:24
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 !
