Manuel PHP

Table des matières

Préface
I. Au moment de commencer
II. Installation et configuration
III. Référence du langage
IV. Sécurité
V. Caractéristiques
VI. Référence des fonctions
VII. PHP et le moteur interne Zend
VIII. FAQ : foire Aux Questions
IX. Annexes
Remerciements



XLII. Fonctions Firebird/InterBase

Introduction

Firebird/InterBase est une base de données relationnelles offrant la plus part des fonctionnalités décrites dans la norme ANSI SQL-92, qui fonctionne sous environnements Linux, Windows, et la plus part des systèmes Unix. Firebird/InterBase offre une excellente simultanéité, de hautes performances et un langage efficace pour l’écriture des procédures stockées et des triggers. Il est utilisé sur des systèmes de production depuis 1981.

Interbase est le nom de la variante commerciale de cette base de données créée par Borland/Inprise. Pour plus d’informations sur Interbase, allez à http://www.borland.com/interbase/.

Firebird est un projet commerciallement indépendant de programmeurs C et C++, conseillés techniques, supportant le développement et assurant la compatibilité multi-plate-forme de la base de données relationnelle basé sur le code source offert par Inprise Corp (maintenant connu sous le nom de Borland Software Corp) sous la licence InterBase Public License v.1.0 le 25 Juillet 2000. Pour plus d’informations sur Firebird, allez à http://www.firebirdsql.org/.

Note : Cette extension supporte Interbase version 5 et suivante ainsi que toutes les versions de Firbird. Le support d’Interbase version 5.x sera supprimé dans PHP 5.
Cette base de données utilise les guillemets simples (”‘“) pour échapper les caractères, un peu comme le fait Sybase. Ajoutez à votre fichier “php.ini” la directive suivante :
| Exemple 1. Configuration InterBase |

::magic_quotes_sybase = On ::

Pré-requis

Installation

Pour activer le support de ibase, vous devez compiler PHP avec l’option “–with-interbase[=DIR]”.

Note aux utilisateurs Win32 : Afin d’activer ce module dans l’environnement Windows, vous devez copier les bibliothèques “gds32.dll” depuis le dossier DLL de PHP/Win32 dans le dossier système “SYSTEM32” de votre machine (par exemple : “C:\WINNT\SYSTEM32” ou “C:\WINDOWS\SYSTEM32”). Dans le cas où vous auriez installé le serveur de base de données InterBase sur la même machine qui exploite PHP, vous aurez déjà ces DLL de prêtes. Par conséquent, vous n’avez pas à copier la bibliothèque “gds32.dll”.

Configuration à l'exécution

Le comportement de ces fonctions est affecté par la configuration dans le fichier “php.ini”.

Tableau 1. Options de configuration

Nom Par défaut Modifiable Historique
ibase.allow_persistent “1” PHP_INI_SYSTEM
ibase.max_persistent “-1” PHP_INI_SYSTEM
ibase.max_links “-1” PHP_INI_SYSTEM
ibase.default_db NULL PHP_INI_SYSTEM Disponible depuis PHP 5.0.0.
ibase.default_user NULL PHP_INI_ALL
ibase.default_password NULL PHP_INI_ALL
ibase.default_charset NULL PHP_INI_ALL Disponible depuis PHP 5.0.0.
ibase.timestampformat “%Y-%m-%d %H:%M:%S” PHP_INI_ALL
ibase.dateformat “%Y-%m-%d” PHP_INI_ALL
ibase.timeformat “%H:%M:%S” PHP_INI_ALL

Pour plus de détails sur les constantes PHP_INI_*, reportez-vous à Annexe G.

Voici un éclaircissement sur l’utilisation des directives de configuration.

“ibase.allow_persistent” booléen

Accepte ou non les connexions persistantes à Firebird/Interbase.

“ibase.max_persistent” entier

Le nombre maximal de connexions persistantes Firebird/Interbase par processus. Les nouvelles connexions avec ibase_pconnect() ne seront pas persistantes si ce nombre maximal est atteint.

“ibase.max_links” entier

Le nombre maximal de connexions Firebird/Interbase par processus, incluant les connexions persistantes.

“ibase.default_db” chaîne de caractères

Le nom de la base de données par défaut lorsque ibase_[p]connect() est appelé sans base de données spécifique. Si cette valeur est définie et que le mode sécurisé (safe mode) SQL est activé, aucune connexion à d’autres bases de données que celle-ci ne sera autorisé.

“ibase.default_user” chaîne de caractères

Le nom d’utilisateur utilisé lors de la connexion à la base de données lorsque aucun n’est spécifié.

“ibase.default_password” chaîne de caractères

Le mot de passe utilisé lors de la connexion à la base de données lorsque aucun n’est spécifié.

“ibase.default_charset” chaîne de caractères

Le jeux de caractères utilisé lors de la connexion à la base de données lorsque aucun n’est spécifié.

“ibase.timestampformat” chaîne de caractères

“ibase.dateformat” chaîne de caractères

“ibase.timeformat” chaîne de caractères

Ces directives sont utilisées pour définir les formats de dates et d’heures qui seront utilisés lorsque des dates/heures seront retournées d’un jeux de résultat, ou lors de traitement d’arguments en paramètres dates/heures.

Types de ressources

Constantes pré-définies

Ces constantes sont définies par cette extension, et ne sont disponibles que si cette extension a été compilée avec PHP, ou bien chargée au moment de l’exécution.

Les constantes suivantes peuvent être passées à la fonction ibase_trans() pour spécifier le comportement du traitement.

Tableau 2. Constantes Firebird/InterBase

Constante Description
IBASE_DEFAULT Définit le comportement par défaut. Ce comportement est déterminé par la bibliothèque cliente, qui est définie comme IBASE_WRITE|IBASE_CONCURRENCY|IBASE_WAIT dans la plus part des cas.
IBASE_READ Démarre une transaction en lecture seul
IBASE_WRITE Démarre une transaction en lecture / écriture
IBASE_CONSISTENCY Démarre une transaction avec le niveau d’isolation définie à ‘“consistency”‘, ce qui signifie que le transaction courante ne peut lire depuis des tables qui ont été modifiées par d’autres transactions.
IBASE_CONCURRENCY Démarre une transaction avec le niveau d’isolation définie à ‘“concurrency”’ (ou ‘“snapshot”‘), ce qui signifie que la transaction peut accéder à toutes les tables, mais ne peut pas voir les modifications apportées par d’autres transactions une fois que la transaction a débutté.
IBASE_COMMITTED Démarre une transaction avec le niveau d’isolation définie à ‘“read committed”‘. Ce flag doit être associé avec soit la constante “IBASE_REC_VERSION”, soit la constante “IBASE_REC_NO_VERSION”. Ce niveau d’isolation vous permet d’accéder aux modifications effectuées après le début de la transaction. Si la constante “IBASE_REC_NO_VERSION” est spécifiée, seulement la dernière version des lignes pourra être lue. Si la constante “IBASE_REC_VERSION” est spécifiée, une ligne peut toujours être lue lorsqu’une modification est en attente dans une transaction concurrente.
IBASE_WAIT Indique que la transaction peut attendre, puis réessayer lorsqu’un conflit apparaît.
IBASE_NOWAIT Indique que la transaction échouera immédiatement lorsqu’un conflit apparaît.

Les constantes suivantes peuvent être passées aux fonctions ibase_fetch_row(), ibase_fetch_assoc() ou ibase_fetch_object() pour spécifier leurs comportements.

Tableau 3. Constantes Firebird/InterBase

Constante Description
IBASE_FETCH_BLOBS Aussi disponible sous le nom “IBASE_TEXT” pour des raisons de compatiblité ascendante. Permet de lire le contenu d’un BLOB ‘inline’ au lieu de le parcourir en utilisant un identifiant de BLOB.
IBASE_FETCH_ARRAYS Permet de lire un tableau ‘inline’. Sinon, les identifiants de tableaux sont retournés. Les identifiants de tableaux ne peuvent être passés uniquement comme arguments aux requêtes INSERT, car aucune fonction pour traiter les identifiants de tableaux n’est actuellement disponible.
IBASE_UNIXTIME Permet de retourner les champs date et heure non pas comme des chaînes de caractères mais comme des timestamps UNIX (le nombre de secondes depuis l’époque UNIX, qui est le 1-Jan-1970 0:00 UTC). Cela peut être problèmatique si vous utilisez des dates antérieures à 1970 sur quelques systèmes.

Les constantes suivantes sont utilisées pour passer des requêtes et des options à l’API (ibase_server_info(), ibase_db_info(), ibase_backup(), ibase_restore() et ibase_maintain_db()). Merci de consulter le manuel Firebird/InterBase pour plus d’informations sur la significations de ces options.

“IBASE_BKP_IGNORE_CHECKSUMS”

“IBASE_BKP_IGNORE_LIMBO”

“IBASE_BKP_METADATA_ONLY”

“IBASE_BKP_NO_GARBAGE_COLLECT”

“IBASE_BKP_OLD_DESCRIPTIONS”

“IBASE_BKP_NON_TRANSPORTABLE”

“IBASE_BKP_CONVERT”

Options de ibase_backup()

“IBASE_RES_DEACTIVATE_IDX”

“IBASE_RES_NO_SHADOW”

“IBASE_RES_NO_VALIDITY”

“IBASE_RES_ONE_AT_A_TIME”

“IBASE_RES_REPLACE”

“IBASE_RES_CREATE”

“IBASE_RES_USE_ALL_SPACE”

Options de ibase_restore()

“IBASE_PRP_PAGE_BUFFERS”

“IBASE_PRP_SWEEP_INTERVAL”

“IBASE_PRP_SHUTDOWN_DB”

“IBASE_PRP_DENY_NEW_TRANSACTIONS”

“IBASE_PRP_DENY_NEW_ATTACHMENTS”

“IBASE_PRP_RESERVE_SPACE”

“IBASE_PRP_RES_USE_FULL”

“IBASE_PRP_RES”

“IBASE_PRP_WRITE_MODE”

“IBASE_PRP_WM_ASYNC”

“IBASE_PRP_WM_SYNC”

“IBASE_PRP_ACCESS_MODE”

“IBASE_PRP_AM_READONLY”

“IBASE_PRP_AM_READWRITE”

“IBASE_PRP_SET_SQL_DIALECT”

“IBASE_PRP_ACTIVATE”

“IBASE_PRP_DB_ONLINE”

“IBASE_RPR_CHECK_DB”

“IBASE_RPR_IGNORE_CHECKSUM”

“IBASE_RPR_KILL_SHADOWS”

“IBASE_RPR_MEND_DB”

“IBASE_RPR_VALIDATE_DB”

“IBASE_RPR_FULL”

“IBASE_RPR_SWEEP_DB”

Options de ibase_maintain_db()

“IBASE_STS_DATA_PAGES”

“IBASE_STS_DB_LOG”

“IBASE_STS_HDR_PAGES”

“IBASE_STS_IDX_PAGES”

“IBASE_STS_SYS_RELATIONS”

Options de ibase_db_info()

“IBASE_SVC_SERVER_VERSION”

“IBASE_SVC_IMPLEMENTATION”

“IBASE_SVC_GET_ENV”

“IBASE_SVC_GET_ENV_LOCK”

“IBASE_SVC_GET_ENV_MSG”

“IBASE_SVC_USER_DBPATH”

“IBASE_SVC_SVR_DB_INFO”

“IBASE_SVC_GET_USERS”

Options de ibase_server_info()

Table des matières

ibase_add_user –  Ajoute un utilisateur à une base de données de sécurité (uniquement pour IB6 ou plus récent) 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 refermeribase_commit – Valide une transaction iBaseibase_connect –  Ouvre une connexion à une base de données InterBase 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é (uniquement pour IB6 ou plus récent) 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éeibase_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 objetibase_fetch_row – Lit une ligne dans une base Interbaseibase_field_info – Lit les informations sur un champ iBaseibase_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 iBaseibase_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é (uniquement pour InterBase6 ou plus récent) 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 iBaseibase_restore –  Restaure une sauvegarde de base de données Interbase ibase_rollback_ret – Annule une transaction sans la refermeribase_rollback – Annule une transaction iBaseibase_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 callback sur un événement iBase ibase_timefmt –  Fixe le format de date pour les prochaines requêtes ibase_trans – Prépare une transaction iBaseibase_wait_event –  Attend un événement iBase

Travail collaboratif

Contribuez, en ajjoutant des elements a cette page de manuel :

Merci de votre aide
L’equipe Php.fr

 


Index | Afficher le texte source | Anciennes révisions | Derniers changements | Connexion
©2007 Wiki Copyright