j'aimerais utiliser mkframework avec la base de données Oracle 12c. «Est-ce possible ? Pouvez-vous m'aider pour les paramètres de connexion. Merci
j'aimerais utiliser mkframework avec la base de données Oracle 12c. «Est-ce possible ? Pouvez-vous m'aider pour les paramètres de connexion. Merci
Oui c'est possible
Créez une application avec le builder,
Vous avez un exemple de connexion pdo/oracle dans le fichier conf/connexion.ini.PHP de l'appli générée
Framework php sécurisé et simple à prendre en main avec générateur web http://mkframework.com/ (hebergé sur developpez.com)
Mes cours/tutoriaux
Bonjour,
J'ai la version du framework 4_109_r269. Sur le builder, je n'ai pas d'exemple de connexion oracle.
J'ai tour le reste (mysql, postgres, sqlserver, firebird, xml, json, sqllite, csv) mais pas de pdo_oracle.
Pourtant le driver existe bien dans le dossier lib/framework/sgbd/pdo.
j'ai essayé de déduire la syntaxe du dsn suivant les autres exemples, sur le modèle suivant : pdoOracleExple.dsn = oracle:host=192.168.1.XX:YYYY/xe (où X est l'ip et Y le port) et pdoOracleExple.sgbd = pdo_oracle
La connexion ne se fait pas : could not find driver
As-tu un exemple de syntaxe de chaîne de connexion ?
Ylian
Pour information, la construction se fait ainsi: on créé une instance de l'objet pdo avec la variable .dsn
On peut lire sur le site php
Code php : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15 $tns = " (DESCRIPTION = (ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP)(HOST = yourip)(PORT = 1521)) ) (CONNECT_DATA = (SERVICE_NAME = orcl) ) ) "; $db_username = "youname"; $db_password = "yourpassword"; try{ $conn = new PDO("oci:dbname=".$tns ...
http://php.net/manual/fr/ref.pdo-oci.php
Ce qui donnerait dans le fichier de config
Un utilisateur avait déjà demandé: http://www.developpez.net/forums/d12...driver-oracle/
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7pdoOracle.dsn="oci:dbname=//serveur_oracle:1521/XE" pdoOracle.sgbd=pdo_oracle pdoOracle.hostname=serveur_oracle pdoOracle.database= pdoOracle.username=nom_schema pdoOracle.password=pwd_schema
Pour le driver, il faut installer le driver php pdo oracle
Framework php sécurisé et simple à prendre en main avec générateur web http://mkframework.com/ (hebergé sur developpez.com)
Mes cours/tutoriaux
Eh bien voila, çà marche parfaitement. La première étape de mon challenge est opérationnelle grâce à toi.
Pour info, le driver était bien installé, mais comme je l'appelais "oracle" au lieu de "oci", il ne cherchait pas le bon.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7pdoOracle.dsn="oci:dbname=//serveur_oracle:1521/XE" pdoOracle.sgbd=pdo_oracle pdoOracle.hostname=serveur_oracle pdoOracle.database= pdoOracle.username=nom_schema pdoOracle.password=pwd_schema
A présent, je vais passer à la deuxième étape, un crud pour une application 100% compatible oracle ou mysql, par simple changement de paramètre.
Les premiers résultats sont prometteurs.
Merci de ta dispo, l'ami, et pour ton travail formidable.
Ylian
De rien, merci d'utiliser ce framework, n'hesitez pas à en faire la promotion
Framework php sécurisé et simple à prendre en main avec générateur web http://mkframework.com/ (hebergé sur developpez.com)
Mes cours/tutoriaux
Bonjour,
Pour information, et pour les utilisateurs du module table sur Oracle.
ceux qui utilisent le module table avec tri et pagination ont un exemple sur la page de tutoriaux de ce module.
L'exemple porte sur le modèle "complex4".
Une fois passé sur Oracle, il y a une erreur de syntaxe sur la requête de la fonctioncountAll (la fonction qui compte les résultats pour la pagination).
Voici la fonction, que vous devez avoir dans votre modèle de données :
Sous Mysql, ça passe bien, mais sous Oracle, ça coince, à cause de la syntaxe de la variable total.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9 public function countAll(){ $oRow=$this->findOneSimple('SELECT count(id) as total FROM '.$this->sTable.' '); plugin_debug::addSpy('oR',$oRow); if($oRow){ return $oRow->total; } return 0; }
Le mieux est donc de changer la 1ère ligne de la fonction comme ceci :
Cette syntaxe est compatibe avec mysql ET oracle.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 $oRow=$this->findOneSimple('SELECT count(id) as "total" FROM '.$this->sTable.' ');
Hope it helps !
Ylian
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager