Explication détaillée de l'accès PHP à l'instance de procédure stockée Oracle

高洛峰
Libérer: 2023-03-04 18:18:01
original
1042 Les gens l'ont consulté

Explication détaillée de l'accès PHP à l'instance de procédure stockée 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;
Copier après la connexion

Le nom du package est PKG_TRANS_REL, 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;
  }
 
  ...
Copier après la connexion

Le troisième paramètre de bindParam est par défaut PDO::PARAM_STR S'il s'agit d'autres types, il doit l'être. spécifié

Passer la valeur du paramètre d'entrée est relativement simple, tandis que le paramètre de sortie est légèrement plus compliqué et la longueur doit être spécifiée.

Pour plus d'accès PHP aux exemples de procédures stockées Oracle, veuillez faire attention au site Web PHP chinois pour les articles connexes !

Étiquettes associées:
source:php.cn
Déclaration de ce site Web
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
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal