1

如何使用 Oracle 驱动程序在 Codeigniter 中执行存储过程?我有 Oracle 10g 和 Codeigniter 2.1.2 。

4

3 回答 3

2

我不认为你可以使用 CodeIgniter 来做到这一点,因为它特定于 Oracle DB。有两种方法可以解决此问题。

  1. 您总是可以回退并使用纯 PHP 来完成此类任务。
  2. 您可以尝试在$this->db->call_function(); 此处的 CI 用户指南中运行带有描述的命令
于 2012-09-29T09:22:06.263 回答
0

参考建议使用$this->db->call_function('an_oracle_function()');它的答案不适用于 Oracle 11g。尝试和测试。我认为 Vlakarados 提到的更好的选择是使用纯 PHP。

于 2013-09-26T11:15:00.450 回答
0

在你的模型中试试这个,这对我有用:

if (!$this->db) {
  $m = oci_error();
  trigger_error(htmlentities($m['message']), E_USER_ERROR);
}

$stid = oci_parse($this->db->conn_id, 'BEGIN PROCEDURE_NAME(:PARAMETER_1,:PARAMETER_2,:OUT_MESSAGE); end;');

oci_bind_by_name($stid, ':PARAMAETER_1',  $PARAMAETER_1,200);
oci_bind_by_name($stid, ':PARAMETER_2',  $PARAMETER_2,200);
oci_bind_by_name($stid, ':OUT_MESSAGE',  $OUT_MESSAGE ,100, SQLT_CHR);

if(oci_execute($stid)){
  $results = $OUT_MESSAGE;
}
oci_free_statement($stid);
oci_close($this->db->conn_id);

return  $results;
于 2018-02-20T02:05:23.893 回答