Attaquer Interbase/Firebird en PHP
Bonjour,
Ce message s'adresse avant tout aux personnes qui utilisent le couple PHP/Interbase ou PHP FireBird, mais j'ai une question plus générale:
Que ce soit Interbase ou Firebird, la base de données semble être réduite à un seul fichier... Cela veut il dire que ce fichier va grossir... grossir? Et que tout est stocké à l'intérieur(trigger/données/procédures stockées)?
Sous PHP il existe des fonctions ibase_XXXX() mais cela n'empeche pas de mettre le chemin qui pointe vers la BdD (c:\labase\Mabase.gdb)
Ma question est donc de comprendre si c'est PHP qui contient le moteur de la base de données ou si cela fait appel au SGBDR installé sur la machine.
Avec Firebird et PHP comment attaquer la BdD? via ODBC uniquement ou bien les fonctions ibase_XXX() de PHP peuvent aussi se faire vers firebird?
Merci pour vos explications, je reserve d'autres question avoir compris un peu plus en détails le fonctionneement PHP/Interbase
ATchao!
Jfazer
Re: Attaquer Interbase/Firebird en PHP
Citation:
Envoyé par jflebegue
Que ce soit Interbase ou Firebird, la base de données semble être réduite à un seul fichier... Cela veut il dire que ce fichier va grossir... grossir? Et que tout est stocké à l'intérieur(trigger/données/procédures stockées)?
Oui.
Citation:
Envoyé par jflebegue
Sous PHP il existe des fonctions ibase_XXXX() mais cela n'empeche pas de mettre le chemin qui pointe vers la BdD (c:\labase\Mabase.gdb)
Ma question est donc de comprendre si c'est PHP qui contient le moteur de la base de données ou si cela fait appel au SGBDR installé sur la machine.
C'est le chemin local de la machine sur lequel se trouve le serveur interbase. Par contre sous Firebird 1.5 la notion d'Alias a été introduite, ce qui veux dire qu'on peux dans le fichier de configuration de firebird définire un alias MaBase=c:\labase\MaBase.fdb et pour se connecter on ne donne pas le chemin mais le nom de l'Alias (MaBase)
Citation:
Envoyé par jflebegue
Avec Firebird et PHP comment attaquer la BdD? via ODBC uniquement ou bien les fonctions ibase_XXX() de PHP peuvent aussi se faire vers firebird?
Les fonctions d'accés natives interbases fonctionnent pour attaquer firebird.
Re: Attaquer Interbase/Firebird en PHP
Pour confirmation: Concernant le moteur interbase, en fait déclarer le module interbase dans le PHP.ini ne suffit pas, il faut aussi avoir installé Interbase, la dll php s'adresse alors à Interbase. exact?
Je ne sais pas si j'ai été très clair...
Citation:
Envoyé par jflebegue
Avec Firebird et PHP comment attaquer la BdD? via ODBC uniquement ou bien les fonctions ibase_XXX() de PHP peuvent aussi se faire vers firebird?
Citation:
Envoyé par barbibulle
Les fonctions d'accés natives interbases fonctionnent pour attaquer firebird.
Y a t'il des incompatibilités connues?
Si le fichier grossit avec la quantité d'info stockée, les performances ne vont elles pas se dégrader? En toute logique oui mais les grosses Bases ne semblent pas poser de Pb à Interbase d'après le Forum...
Re: Attaquer Interbase/Firebird en PHP
Citation:
Envoyé par jflebegue
Pour confirmation: Concernant le moteur interbase, en fait déclarer le module interbase dans le PHP.ini ne suffit pas, il faut aussi avoir installé Interbase, la dll php s'adresse alors à Interbase. exact?
Je ne sais pas si j'ai été très clair...
Oui Php s'adresse à la dll cliente d'interbase qui va se connecter au serveur interbase. Il faut donc installer la partie cliente d'interbase en plus de PHP. Et installer la partie serveur d'interbase sur le serveur (qui peut etre la même machine que le client).
Citation:
Envoyé par jflebegue
Citation:
Envoyé par jflebegue
Avec Firebird et PHP comment attaquer la BdD? via ODBC uniquement ou bien les fonctions ibase_XXX() de PHP peuvent aussi se faire vers firebird?
Citation:
Envoyé par barbibulle
Les fonctions d'accés natives interbases fonctionnent pour attaquer firebird.
Y a t'il des incompatibilités connues?
Je n'en ai pas rencontré, de toute facon avec Firebird 1.0 c'est l'equivallent d'interbase 6.0 avec des corrections de bugs, il n'y a pas de nouveauté donc c'est 100% compatible.
Avec Firebird 1.5 la dll cliente est modifiée et donc adaptée aux nouveautées de firebird. Mais la DLL cliente d'interbase6.0 fonctionne également pour attaquer FB1.5 simplement vous ne pourrez utiliser les nouveautées.
Citation:
Envoyé par jflebegue
Si le fichier grossit avec la quantité d'info stockée, les performances ne vont elles pas se dégrader? En toute logique oui mais les grosses Bases ne semblent pas poser de Pb à Interbase d'après le Forum...
Non celà ne pose pas de problème. On est pas obligé de lire tout un fichier pour y trouver une information.... A moins de ne pas l'avoir correctement organisé (ce qui n'est pas le cas des SGBD, c'est lleur voccation).
Tous les Gros SGBD sont dans un seul fichier, celà au contraire permet de s'affranchir de certaines contraintes liées aux systemes d'exploitation. Un petit exemple en system Fat32 un disque dur est fractionné en élément atomique les clusteurs. Plus la partition du disque est gros plus les clusteurs le sont. Par exemple un cluster peux faire 32Ko.
Ce qui veux dire que si vous créez un fichier de 100 octets il occupera sur le disque 32Ko et donc 1000 fichiers de cette taille occuperont 32 Mo alors que si vous fusionnez vos 1000 fichiers il n'occuperont moins de 100Ko. Donc les performances pour lire 32 Mo ne vont pas être les même que pour lire 100 Ko et pourtant au final on restituera bien les memes données. Voilà il y a d'autres raisons à préférer un seul fichier que je ne développerai pas ici.
Pour information il existe même des SGBD qui necessite non pas un gros fichier mais carrément une partition entière, qu'il agence spécialement pour lui.