connexion PDO-firebird

Répondre
rom1
le 20/11/2006 à 19:44
rom1
Bonjour,

Je tente désespérement de me connecter à une base firebird avec PDO. Je n'y arrrive pas, je ne suis pas expert de cette BD, quelqu'un aurait il plus d'expérience ?

Voici la syntaxe que j'aie écrit :
<?php
$dbh = new PDO ("firebird:dbname=localhost:C://data//SUIVITEMPS_24102006.FDB", "SYSDBA", "masterkey");
$sql = 'SELECT * from AGENTS2';

foreach ($dbh->query($sql) as $row) {
print_r($row);
}
?>
LupusMic
le 20/11/2006 à 23:04
LupusMic
Quel est le message d'erreur ?
Développeur récurrent, procédural et relationnel. Caustique soupe-au-lait.
rom1
le 21/11/2006 à 10:48
rom1
Salut lupusMic,

Je n'ai pas été très clair, désolé.

Mon soucis c'est que je ne connais pas du tout firebird, c'est la première fois que je l'utilise, je ne suis pas sur de ma config.

Ma config est la suivante :

1/ j'ai installé firebird 1.5 en tant que serveur sous window xp
2/ j'utilise ibexpert comme interface
3/ j'ai installé wamp dernière version
4/ j'ai activé les extensions php_interbase.dll ,php_pdo.dll et php_pdo_firebird.dll.

J'ai tenté de me connecter en php sans le pdo, cela ne marche pas :

mon code "connexion.php" est :
<?php
$path='localhost:C:/data/SUIVITEMPS_24102006.FDB';
$user='SYSDBA';
$pass='masterkey';
$connexion = ibase_connect($path,$user,$pass) or die('Connexion impossible à la base : ' . ibase_errmsg());
?>


le message d'erreur suivant m'est retourné :

Connexion impossible à la base : Unable to complete network request to host "localhost". Failed to locate host machine. Undefined service gds_db/tcp.



Par contre j’arrive à me connecter en passant par la ISQL.exe avec la syntaxe suivante :

connect localhost :c:/data/SUIVITEMPS_24102006.FDB user sysdba password masterkey ;


J'ai lu sur internet qu'il fallait rajouter la ligne "gds_db tcp/3050" dans le fichier services de systeme32/drivers/etc.

Je l’ai fait, cela ne fonctionne toujours pas.

tu as une idée???
rom1
le 21/11/2006 à 11:04
rom1
je suis allé faire un tour sur internet et j'ai trouvé une réponse : WinsockFix. C'est un petit utilitaire qui scan et dépanne TCP/IP.

A part m'avoir explosé ma connexion réseau, ca n'a pas réglé mon problème...
LupusMic
le 21/11/2006 à 13:33
LupusMic
Tu as bien modifié le fichier %WINDIR%/system32/drivers/etc/services ?
Développeur récurrent, procédural et relationnel. Caustique soupe-au-lait.
rom1
le 21/11/2006 à 14:08
rom1
j'ai modifié le fichier :
C:WINDOWS/system32/drivers/etc/services

j'ai ajouté la ligne :
<nom de service> gds_db
<num‚ro de port/<protocole> 3050/tcp
[alias...]
[#<commentaire>]


cela te parait correct ?
LupusMic
le 21/11/2006 à 15:23
LupusMic
Donc la ligne que tu as saisie est la suitvante ?
C:WINDOWS/system32/drivers/etc/services
gds_db 3050/tcp firebird-sql
Développeur récurrent, procédural et relationnel. Caustique soupe-au-lait.
rom1
le 21/11/2006 à 17:20
rom1
ouais, c'est ca...

Une autre question, faut il que je copie d'autres bliothèques dans système32, sachant que je suis en localhost ? du style :
- php_interbase.dll (depuis le répertoire wampphpext)
- libeay32.dll et ssleay32.dll (depuis le répertoire wampphp)

j'ai lu ca dans un autre post, c'est pas la peine, non ?
LupusMic
le 21/11/2006 à 23:30
LupusMic
Pour le premier, surtout pas. Pour les autres, je ne sais pas.
Développeur récurrent, procédural et relationnel. Caustique soupe-au-lait.
rom1
le 23/11/2006 à 10:34
rom1
Dernières nouvelles :

1/ sous Window en localhost, il n'est pas nécessaire de renseigner le nom du serveur dans le path de la base.

$path='localhost:C:dataSUIVITEMPS_24102006.FDB';
devient
$path='C:dataSUIVITEMPS_24102006.FDB';


2/ avec cette syntaxe cela fonctionne sous easyphp 1.8, par contre cela ne marche toujours pas avec WAMP5 1.6.3 (mon client utilise Wamp), j'ai un nouveau message d'erreur :

"Warning: ibase_connect() [function.ibase-connect]: unavailable database"

cette fois il n'arrive pas à lire la base!!!!

duc oup, le problème doit venir du php.ini de Wamp, on m'a conseillé de modifier la ligne :
"magic_quotes_sybase = Off" par "magic_quotes_sybase = On", mais cela ne marche toujours pas

y aurait il un autre paramètre du php.ini qu'il faudrait modifier ?
Répondre

Ecrire un message

Votre message vient d'être créé avec succès.
LoadingChargement en cours