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;"
Fonctions Firebird/InterBase
Sommaire
- ibase_add_user — Ajoute un utilisateur à une base de données de sécurité
- ibase_affected_rows — Retourne le nombre de lignes affectées par la dernière requête iBase
- ibase_backup — Effectue une sauvegarde de base de données InterBase
- ibase_blob_add — Ajoute des données dans un BLOB iBase fraîchement créé
- ibase_blob_cancel — Annule la création d'un BLOB iBase
- ibase_blob_close — Ferme un BLOB iBase
- ibase_blob_create — Crée un BLOB iBase pour ajouter des données
- ibase_blob_echo — Affiche le contenu d'un BLOB iBase au navigateur
- ibase_blob_get — Lit len octets de données dans un BLOB iBase ouvert
- ibase_blob_import — Crée un BLOB iBase, y copie un fichier et le referme
- ibase_blob_info — Retourne la taille d'un BLOB iBase et d'autres informations utiles
- ibase_blob_open — Ouvre un BLOB iBase pour récupérer des parties de données
- ibase_close — Ferme une connexion à une base de données Interbase
- ibase_commit_ret — Valide une transaction iBase sans la refermer
- ibase_commit — Valide une transaction iBase
- ibase_connect — Ouvre une connexion à une base de données
- ibase_db_info — Demande des statistiques sur une base de données Interbase
- ibase_delete_user — Efface un utilisateur d'une base de données de sécurité
- ibase_drop_db — Supprime une base de données iBase
- ibase_errcode — Retourne le code d'erreur iBase
- ibase_errmsg — Retourne un message d'erreur
- ibase_execute — Exécute une requête iBase préparée
- ibase_fetch_assoc — Récupère une ligne du résultat d'une requête dans un tableau associatif
- ibase_fetch_object — Lit une ligne dans une base Interbase dans un objet
- ibase_fetch_row — Lit une ligne d'une base Interbase
- ibase_field_info — Lit les informations sur un champ iBase
- ibase_free_event_handler — Libère un gestionnaire d'événements iBase
- ibase_free_query — Libère la mémoire réservée par une requête préparée
- ibase_free_result — Libère un résultat iBase
- ibase_gen_id — Incrémente le générateur donné et retourne sa nouvelle valeur
- ibase_maintain_db — Exécute une commande de maintenance sur une base de données Interbase
- ibase_modify_user — Modifie un utilisateur dans une base de données de sécurité
- ibase_name_result — Assigne un nom à un jeu de résultats iBase
- ibase_num_fields — Retourne le nombre de colonnes dans un résultat iBase
- ibase_num_params — Retourne le nombre de paramètres dans une requête préparée iBase
- ibase_param_info — Retourne des informations à propos d'un paramètre dans une requête préparée iBase
- ibase_pconnect — Ouvre une connexion persistante à une base de données InterBase
- ibase_prepare — Prépare une requête iBase pour lier les paramètres et l'exécuter ultérieurement
- ibase_query — Exécute une requête sur une base iBase
- ibase_restore — Restaure une sauvegarde de base de données Interbase
- ibase_rollback_ret — Annule une transaction sans la fermer
- ibase_rollback — Annule une transaction interBase
- ibase_server_info — Demande des informations sur le serveur Interbase
- ibase_service_attach — Connexion au service de gestion Interbase
- ibase_service_detach — Déconnexion du service de gestion Interbase
- ibase_set_event_handler — Enregistre une fonction de rappel sur un événement interBase
- ibase_trans — Prépare une transaction interBase
- ibase_wait_event — Attend un événement interBase
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 !
