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 à » https://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 à » https://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 :Example#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: Note aux utilisateurs Win32 Afin de faire fonctionner cette extension, quelques bibliothèques DLL doivent être disponibles via le PATH du système Windows. Lisez la FAQ intitulée "Comment ajouter mon dossier PHP à mon PATH WIndows" pour plus d'informations. Le fait de copier les bibliothèques DLL depuis le dossier PHP dans le dossier système Windows fonctionne également (car le dossier système est par défaut dans le PATH système), mais cette méthode n'est pas recommandée. Cette extension nécessite que les fichiers suivants se trouvent dans le PATH : gds32.dll
Dans le cas où vous installeriez un serveur InterBase sur la même machine que celle faisant fonctionner PHP, vous devriez déjà avoir cette bibliothèque. Ainsi, ne vous en faites pas car gds32.dll sera déjà dans votre PATH.
Configuration à l'exécution
Le comportement de ces fonctions est affecté par la configuration dans le fichier php.ini.
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 |
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.
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.
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 of Contents
- 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 refermer
- ibase_commit — Valide une transaction iBase
- ibase_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é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 dans 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é (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 iBase
- ibase_restore — Restaure une sauvegarde de base de données Interbase
- ibase_rollback_ret — Annule une transaction sans la refermer
- ibase_rollback — Annule une transaction iBase
- 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 callback sur un événement iBase
- ibase_timefmt — Fixe le format de date pour les prochaines requêtes
- ibase_trans — Prépare une transaction iBase
- ibase_wait_event — Attend un événement iBase