2009-09-17 8 views
2

J'essaie de me connecter à ma base de données Oracle en utilisant PDO, mais je reçois Classe PDO introuvable erreur. J'ai vérifié que PDO est activé et il apparaît ainsi. Je n'arrive toujours pas à comprendre pourquoi je reçois cette erreur. Voici ma commande configure,En PHP obtenir "Classe" PDO "introuvable" erreur lors de la tentative de connexion à Oracle DB

cscript /nologo configure.js "--enable-snapshot-build" "--enable-debug-pack" 
"--with-snapshot-template=d:\php-sdk\snap_5_2\vc6\x86\template" 
"--with-php-build=d:\php-sdk\snap_5_2\vc6\x86\php_build" 
"--with-pdo-oci=D:\php-sdk\oracle\instantclient10\sdk,shared" 
"--with-oci8=D:\php-sdk\oracle\instantclient10\sdk,shared" 

PHP ver: 5.2.8 Oracle: 10.2

C'est le code que je utilise pour se connecter à la DB.

try{ 
    $conn = new PDO("oci:dbname=".$oc_db,$oc_user,$oc_pass); 
}catch(PDOException $e){ 
    echo ($e->getMessage()); 
} 

Peut-il y avoir une autre raison pour laquelle je reçois cette erreur? Toute aide appréciée.

+1

PDO nécessite le module PDO général et les modules spécifiques du pilote (dans votre cas, php_oracle) activés. Que fait un appel à phpinfo() dans la section PDO 'Pilotes PDO'? Quels pilotes spécifiques sont activés? –

+0

puisque vous mentionnez ceci j'ai vérifié encore dans phpinfo() mais il n'y a aucune section pour "pilotes de PDO". – Chantz

+0

Ah oui, bien sûr, je suppose que c'est logique puisque vous avez mentionné que la classe PDO n'est pas trouvée. Que je suis bête. Je crains de ne pas avoir trop d'expérience dans la configuration de PHP comme vous le configurez. Mais je suppose que vous devriez avoir une autre option de configuration sur le modèle de '--with-pdo' qui installe le module PDO général. Ceci suppose que '--with-pdo-oci' n'installe pas automatiquement le module PDO général. Pas sûr à ce sujet cependant. –

Répondre

1

Cela signifie généralement que l'extension PDO en question n'est pas compilée et configurée pour que PHP puisse l'utiliser. Sur quel système d'exploitation compilez-vous PHP?

Je ne suis pas sûr si le module de base PDO est compilé si vous spécifiez seulement pour compiler l'extension oracle de celui-ci (PDO-OCI).

Vous devriez consulter le manuel de PHP concernant l'installation et l'activation du module PDO.

Vous devriez regarder ces sites: http://is.php.net/manual/en/pdo.installation.php http://is.php.net/manual/en/ref.pdo-oci.php

+0

Je (en fait, mon webmaster) je compile sur Windows Box. Je pense qu'il n'avait pas installé le PDO_OCI mais il a été trié. Merci. – Chantz

0

Vérifiez ma question, je résoudre ce et d'autres erreurs mais Im coincé, No records found ...Agiletoolkit and Oracle. Grid/CRUD elements

Ma chaîne de connexion Oracle dans agiletoolkit config-default.php le fichier ressemble à ceci:

$config['dsn']= array('oci:dbname=localhost/MYDATABASE', 'MYUSER', 'MYPASSWORD'); 

Pour corriger l'erreur driver found found, j'ai activé l'extension = p hp_pdo_oci8.dll dans le fichier php.ini de mon installation apache.

Puis il y a eu une erreur au sujet d'un manque « oci.php », pour résoudre que je devais créer mon propre dossier comme celui-ci:

class DB_dsql_oci extends DB_dsql { 
    function limit($cnt,$shift=0){ 
     $cnt+=$shift; 

    $this->where('NUM_ROWS>=',$shift); 
     $this->where('NUM_ROWS<',$cnt); 
     return $this; 
    } 
    function render_limit(){ 
     return ''; 
    } 
} 

et placé à l'adresse: ... atk4 \ lib \ DB \ DSQL

pour corriger l'erreur de caractères spéciaux d'oracle, je mis en ligne 59 sur /atk4/lib/DB/dsql.php à une chaîne vide comme ceci: public $bt='';

je parviens à exécuter le test de base de données, et il dit "Connecté avec succès à la base de données."

Questions connexes