gpt4 book ai didi

php - 带有PDO的php中Oracle的程序

转载 作者:可可西里 更新时间:2023-11-01 00:35:46 34 4
gpt4 key购买 nike

我在使用 propel 1.6 和 oracle 过程时遇到问题。我将它发布在 PDO 下,因为我是 Propel 只是为了代理我对 PDO 的调用。

基本上程序获取用户名和密码,检查是 确定并返回用户。 因此,它返回一个 types.cursorType。

sql是这样开始的。

CREATE OR REPLACE 
PROCEDURE "SP_LOGIN" (R_CURSOR OUT types.cursorType, UserId IN
VARCHAR2, Password IN VARCHAR2)

我的 php 代码是:

$con = Propel::getConnection(); 
$sql = 'BEGIN SP_LOGIN(:CURSOR, :0, :1); END;';
$stmt = $con->prepare($sql);
$result_arr;
$stmt->bindParam(":CURSOR", $result_arr, PDO::PARAM_STR || PDO::PARAM_INPUT_OUTPUT);
$stmt->bindParam(":0", $username, PDO::PARAM_STR);
$stmt->bindParam(":1", $password, PDO::PARAM_STR);
$stmt->execute();
$result_arr = $stmt->fetchAll();

现在抛出一个异常类型: {PDOException} SQLSTATE [HY000]:一般错误:6550 OCIStmtExecute: ORA-06550: 第 1 行,第 7 列: PLS-00306:调用“SP_LOGIN”的错误参数的数量或类型

我做错了什么?

提前致谢。

P.S:我在 Propel 论坛上问了这个问题,他们指导我搜索 PDO 解决方案。

最佳答案

我怀疑问题出在第一个参数上。您告诉 PDO 它是一个字符串 (PDO::PARAM_STR) 但它实际上是 types.cursorType。有一个 user comment in the PHP manual这表明不支持引用游标。

不幸的是,PDO 的 Oracle 驱动程序是实验性的并且(恕我直言)基本上被放弃了。

关于php - 带有PDO的php中Oracle的程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8121244/

34 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com