Maison  >  Article  >  développement back-end  >  Explication graphique détaillée de l'accès de PHP aux procédures stockées Oracle

Explication graphique détaillée de l'accès de PHP aux procédures stockées Oracle

墨辰丷
墨辰丷original
2018-05-26 16:24:181916parcourir

Cet article présente principalement des informations pertinentes sur l'accès PHP aux exemples de procédures stockées Oracle. Voici l'exemple de code pour vous aider à réaliser une telle fonction. Les amis dans le besoin peuvent se référer à

Accès php Explication détaillée. d'exemples de procédures stockées Oracle

Par exemple, ma base de données Oracle locale contient un package contenant une procédure stockée :

create or replace package PKG_TRANS_REL is

 -- Author : test
 -- Created : 
 -- Purpose : test

 -- Public type declarations
 PKG_NAME varchar2(20) := 'PKG_TRANS_REL';
 --存储过程,测试用
 procedure pro_GC_withdraw(in_merch_no   in varchar2,
              in_withdraw_amt in number,
              out_result   out number,
              out_errmsg   out varchar2);
end PKG_TRANS_REL;

Le nom du package est PKG_TRANS_REL et la procédure stockée est pro_GC_withdraw. Cette procédure stockée a quatre paramètres, deux paramètres d'entrée et deux paramètres de sortie.

Exemple d'appel via pdo en PHP :

  $this->_pdo = new PDO(PDO_DB_DNS, PDO_DB_USER, PDO_DB_PASSWORD);
  $call = "CALL PKG_TRANS_REL.pro_GC_withdraw(?,?,?,?)";

  try{
      $stmt = $this->_pdo->prepare($call);

      $stmt->bindParam(1, $merch_no);
      $stmt->bindParam(2, $amount, PDO::PARAM_INT);

      $stmt->bindParam(3, $result, PDO::PARAM_INT, 4);
      $stmt->bindParam(4, $error_msg, PDO::PARAM_STR, 64);

      $stmt->execute();

    }catch (PDOException $e)
    {
      $msg = 'SQL:'.$e->getMessage();
      $msg = iconv('GBK','UTF-8',$msg);
      user_dump('SQL:'.$msg);
      return false;
    }

    ...

Le troisième paramètre de bindParam est par défaut PDO::PARAM_STR, S'il s'agit d'un autre type, vous devez spécifier

Il est relativement simple de transmettre la valeur du paramètre d'entrée, mais le paramètre de sortie est un peu plus compliqué, et vous devez le faire. précisez la longueur .

Ce qui précède représente l’intégralité du contenu de cet article, j’espère qu’il sera utile à l’étude de chacun.


Recommandations associées :

Méthodes simples et exemples de classes encapsulées de Python exploitant une base de données Oracle

Explication détaillée de Python utilisant le module cx_Oracle pour faire fonctionner la base de données Oracle

Connexion php à la configuration Oracle sous Windows

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn