Connexion à une base de données Oracle à partir du PHP
Fermé
gilou106
Messages postés
52
Date d'inscription
lundi 23 novembre 2009
Statut
Membre
Dernière intervention
14 avril 2014
-
3 juin 2013 à 09:22
gilou106 Messages postés 52 Date d'inscription lundi 23 novembre 2009 Statut Membre Dernière intervention 14 avril 2014 - 6 juin 2013 à 16:05
gilou106 Messages postés 52 Date d'inscription lundi 23 novembre 2009 Statut Membre Dernière intervention 14 avril 2014 - 6 juin 2013 à 16:05
A voir également:
- Connexion à une base de données Oracle à partir du PHP
- Gmail connexion - Guide
- Creer un groupe whatsapp a partir d'un autre groupe - Guide
- Comment faire une recherche à partir d'une photo - Guide
- Créer une vidéo à partir de photos windows 10 - Guide
- Annuaire portable gratuit a partir d'un nom ✓ - Forum Mobile
9 réponses
jee pee
Messages postés
41208
Date d'inscription
mercredi 2 mai 2007
Statut
Modérateur
Dernière intervention
10 mai 2025
9 622
3 juin 2013 à 17:47
3 juin 2013 à 17:47
Bonjour,
Je ne pratique pas le php. Mais les messages semblent venir du client Oracle.
Tu as un Instant Client. Est-il bien paramétré, peux tu connecter à la base avec sqlplus ?
Car le répertoire utilisé ne semble pas présent dans le PATH windows, et tu as une version light qui ne prend en charge que le code page american/america.
cdlt
Je ne pratique pas le php. Mais les messages semblent venir du client Oracle.
Tu as un Instant Client. Est-il bien paramétré, peux tu connecter à la base avec sqlplus ?
Car le répertoire utilisé ne semble pas présent dans le PATH windows, et tu as une version light qui ne prend en charge que le code page american/america.
cdlt
gilou106
Messages postés
52
Date d'inscription
lundi 23 novembre 2009
Statut
Membre
Dernière intervention
14 avril 2014
4 juin 2013 à 09:19
4 juin 2013 à 09:19
Bonjour,
oui j'ai un Instant Client. C'est le service Informatique qui l'a installé et je comprend pas trop à sa, c'est une peu du reseau je trouve pour moi alors que je suis développeur. J'ai déjà régardé sur "tnsping monBDD" pour voir le chemin du PATH mais je l'ai déjà mis dans les variables de l'environnement Windows et aussi dans l'environnement Apache, mais l'erreur persiste ..
Comment fait on pour se connecter avec SQLplus ?
oui j'ai un Instant Client. C'est le service Informatique qui l'a installé et je comprend pas trop à sa, c'est une peu du reseau je trouve pour moi alors que je suis développeur. J'ai déjà régardé sur "tnsping monBDD" pour voir le chemin du PATH mais je l'ai déjà mis dans les variables de l'environnement Windows et aussi dans l'environnement Apache, mais l'erreur persiste ..
Comment fait on pour se connecter avec SQLplus ?
jee pee
Messages postés
41208
Date d'inscription
mercredi 2 mai 2007
Statut
Modérateur
Dernière intervention
10 mai 2025
9 622
Modifié par jee pee le 4/06/2013 à 12:03
Modifié par jee pee le 4/06/2013 à 12:03
Tout simplement tu lances une fenêtre invite de commande et tu tapes :
sqlplus compte/motdepasse@ORASIDDETABASE
ex : sqlplus finance/finance@BASEFI
Un étranger, c'est un ami qu'on n'a pas encore rencontré.
sqlplus compte/motdepasse@ORASIDDETABASE
ex : sqlplus finance/finance@BASEFI
Un étranger, c'est un ami qu'on n'a pas encore rencontré.
gilou106
Messages postés
52
Date d'inscription
lundi 23 novembre 2009
Statut
Membre
Dernière intervention
14 avril 2014
Modifié par gilou106 le 4/06/2013 à 17:01
Modifié par gilou106 le 4/06/2013 à 17:01
Oui j'arrive à me connecter.
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
jee pee
Messages postés
41208
Date d'inscription
mercredi 2 mai 2007
Statut
Modérateur
Dernière intervention
10 mai 2025
9 622
Modifié par jee pee le 4/06/2013 à 22:49
Modifié par jee pee le 4/06/2013 à 22:49
L'erreur : ORA-12735: Instant Client Light: unsupported client character set
semble indiquer que c'est un pb de character set, peut être du à la version light.
il existe une version plus complète, la basic alors que tu as peut être la basic lite : https://www.oracle.com/database/technologies/instant-client/microsoft-windows-32-downloads.html
Un étranger, c'est un ami qu'on n'a pas encore rencontré.
semble indiquer que c'est un pb de character set, peut être du à la version light.
il existe une version plus complète, la basic alors que tu as peut être la basic lite : https://www.oracle.com/database/technologies/instant-client/microsoft-windows-32-downloads.html
Un étranger, c'est un ami qu'on n'a pas encore rencontré.
gilou106
Messages postés
52
Date d'inscription
lundi 23 novembre 2009
Statut
Membre
Dernière intervention
14 avril 2014
5 juin 2013 à 12:10
5 juin 2013 à 12:10
Le tout premier lien ? (juste pour etre sur)
jee pee
Messages postés
41208
Date d'inscription
mercredi 2 mai 2007
Statut
Modérateur
Dernière intervention
10 mai 2025
9 622
5 juin 2013 à 15:16
5 juin 2013 à 15:16
Oui c'est bien le premier que je propose, mais comme ce n'est pas toi qui avait installé le logiciel à l'origine, il vaudrait mieux déjà vérifier avec ton service informatique ce qu'ils avaient installé.
gilou106
Messages postés
52
Date d'inscription
lundi 23 novembre 2009
Statut
Membre
Dernière intervention
14 avril 2014
6 juin 2013 à 09:22
6 juin 2013 à 09:22
Bonjour,
La version installée est bien le pack complet. :/
La version installée est bien le pack complet. :/
gilou106
Messages postés
52
Date d'inscription
lundi 23 novembre 2009
Statut
Membre
Dernière intervention
14 avril 2014
6 juin 2013 à 11:41
6 juin 2013 à 11:41
Bonjour,
La version installée est bien le pack complet. :/
Je suis entrain d'essayer meme avec PDO sous les deux formats que je connaisse:
- le premier avec "oci:dbname=".PdoOra::$bdd.";host=".PdoOra::$host.":".PdoOra::$port".
Il arrete les services d'Apache
- le deuxième avec
"(DESCRIPTION=(ADDRESS_LIST=(ADDRESS=(PROTOCOL=TCP)(Host=".PdoOra::$host.")(Port = ".PdoOra::$port.")))(CONNECT_DATA=(SID_NAME=".PdoOra::$bdd.")(SERVICE_NAME = ".PdoOra::$bdd.")))".
Il m'affiche l'erreur "Invalid data source name".
La version installée est bien le pack complet. :/
Je suis entrain d'essayer meme avec PDO sous les deux formats que je connaisse:
- le premier avec "oci:dbname=".PdoOra::$bdd.";host=".PdoOra::$host.":".PdoOra::$port".
Il arrete les services d'Apache
- le deuxième avec
"(DESCRIPTION=(ADDRESS_LIST=(ADDRESS=(PROTOCOL=TCP)(Host=".PdoOra::$host.")(Port = ".PdoOra::$port.")))(CONNECT_DATA=(SID_NAME=".PdoOra::$bdd.")(SERVICE_NAME = ".PdoOra::$bdd.")))".
Il m'affiche l'erreur "Invalid data source name".
jee pee
Messages postés
41208
Date d'inscription
mercredi 2 mai 2007
Statut
Modérateur
Dernière intervention
10 mai 2025
9 622
6 juin 2013 à 14:39
6 juin 2013 à 14:39
J'ai effectué des tests pour voir comment cela fonctionne. AVec 2 VM (la base et le client Oracle) et XAMPP en serveur Web.
J'arrive bien à me connecter avec les syntaxes suivantes :
Connexions avec le TNS
ou
Connexion avec la chaine complète
Pour l'anomalie sur le character set, il faudrait le rajouter
J'ai utilisé les infos de ce site : https://www.php.net/manual/en/function.oci-connect.php
Pour Oracle11 (j'ai testé avec une base en Oracle10) il est mentionné une chaine de connexion plus étendue :
//host_name[:port]/service_name[:server_type]/instance_name.
J'arrive bien à me connecter avec les syntaxes suivantes :
Connexions avec le TNS
$connect = ocilogon("FI","FI","ORA10");
ou
$conn = oci_connect('fi', 'fi', 'ORA10'); if (!$conn) { $e = oci_error(); trigger_error(htmlentities($e['message'], ENT_QUOTES), E_USER_ERROR); }
Connexion avec la chaine complète
$conn = oci_connect('fi', 'fi', '//192.168.0.9:1521/ORA10'); if (!$conn) { $e = oci_error(); trigger_error(htmlentities($e['message'], ENT_QUOTES), E_USER_ERROR); }
Pour l'anomalie sur le character set, il faudrait le rajouter
oci_connect('fi', 'fi', '//192.168.0.9:1521/ORA10' , 'WE8ISO8859P1');Car quand il y a une mauvaise valeur, il y a le même message d'erreur que toi.
J'ai utilisé les infos de ce site : https://www.php.net/manual/en/function.oci-connect.php
Pour Oracle11 (j'ai testé avec une base en Oracle10) il est mentionné une chaine de connexion plus étendue :
//host_name[:port]/service_name[:server_type]/instance_name.
gilou106
Messages postés
52
Date d'inscription
lundi 23 novembre 2009
Statut
Membre
Dernière intervention
14 avril 2014
6 juin 2013 à 15:50
6 juin 2013 à 15:50
Je vais essayé pour l'anomalie des caractères et rajouter le "//" avant la hote.
gilou106
Messages postés
52
Date d'inscription
lundi 23 novembre 2009
Statut
Membre
Dernière intervention
14 avril 2014
Modifié par gilou106 le 6/06/2013 à 16:07
Modifié par gilou106 le 6/06/2013 à 16:07
Les deux erreurs sont toujours là :/
Exemple du code que j'ai fait :
$user = '...';
$mdp = '...';
$lien = '//(hote):(port)/(nom service)';
$conn = oci_connect($user, $mdp, $lien, 'WE8ISO8859P1');
$e = oci_error();
var_dump($conn); // Sur la page, il m'affiche la valeur FALSE
var_dump(htmlentities($e['message'])); // Il affiche juste les cotes ''
j'ai essayé aussi avec ocilogon() mais c'est pareil et le site php.net déconseille cette fonction.
Dieu d'oracle et de php ! Aide-moi !!!
Exemple du code que j'ai fait :
$user = '...';
$mdp = '...';
$lien = '//(hote):(port)/(nom service)';
$conn = oci_connect($user, $mdp, $lien, 'WE8ISO8859P1');
$e = oci_error();
var_dump($conn); // Sur la page, il m'affiche la valeur FALSE
var_dump(htmlentities($e['message'])); // Il affiche juste les cotes ''
j'ai essayé aussi avec ocilogon() mais c'est pareil et le site php.net déconseille cette fonction.
Dieu d'oracle et de php ! Aide-moi !!!