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 — Zatwierdza transakcję
- ibase_connect — Otwiera połączenie do serwera 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 — Zwraca 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 do serwera Firebird/InterBase
- ibase_prepare — Przygotowuje zapytanie do późniejszego dowiązania parametrów w postaci zmiennych, i do wykonania
- ibase_query — Wykonuje zapytanie w bazie danych 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
sysop at smartnettechnologies dot com ¶
5 years ago
fortega at uamericas dot net ¶
5 years ago
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'); ?>
felixlee at singnet dot com dot sg ¶
9 years ago
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 ¶
10 years ago
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 ¶
10 years ago
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 years ago
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 ¶
12 years ago
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 !
