Codeigniter 中的 Oracle 查询给出 ORA-01722 和 ORA-01756

Posted

技术标签:

【中文标题】Codeigniter 中的 Oracle 查询给出 ORA-01722 和 ORA-01756【英文标题】:Oracle Query in Codeigniter giving ORA-01722 and ORA-01756 【发布时间】:2020-12-30 12:11:44 【问题描述】:

我通常在我的网站上使用 mysql 数据库,但我试图了解更多关于 oracle 的信息... 我的代码在 2 天前工作,但现在它给出了错误消息,例如 ORA-number 这是我的数据库字段

KODE_GUDANG CHAR        
GUDANG      CHAR
LASTUPDATE  CHAR            
KODE_UNIT   CHAR            
NOMER_REKJURNAL CHAR            
KODE_GUDANG_KREDIT  CHAR            

这是我的查询模型

function getDataOneColumn($getCol, $table, $column, $id) 
    return $this->db->query("SELECT $getCol as val FROM $table WHERE $column = $id")->row_array();
  

这是给我的控制器发出错误的:ORA-01722

 $this->data['no_rek'] = ($this->data['no_rek'] =='')?$this->m_dao->getDataOneColumn("NOMER_REKJURNAL","TBL_MASTER_GUDANG","KODE_GUDANG",$this->data['kode_gdg'])['VAL']:$this->data['no_rek'];

然后我阅读了文档,它的意思是“你执行了一条 SQL 语句,试图将字符串转换为数字

我尝试将我的代码更改为

 $this->data['no_rek'] = ($this->data['no_rek'] =='')?$this->m_dao->getDataOneColumn("NOMER_REKJURNAL","TBL_MASTER_GUDANG","KODE_GUDANG",'"'.$this->data['kode_gdg'])['VAL'].'"':"'".$this->data['no_rek']."'";

这个给出另一个 ORA 错误,ORA-01756。它的意思是“你试图执行的语句包含一个没有被两个单引号括起来的字符串

新错误

Error Number: 1722

ORA-01722: invalid number

SELECT NOMER_REKJURNAL as val FROM TBL_MASTER_GUDANG WHERE KODE_GUDANG = 04

Filename: C:/xampp/htdocs/formula/system/database/DB_driver.php

Line Number: 691

谁能告诉我为什么我的代码在 2 天后出现错误? 和 如何解决这个错误? 谢谢你

【问题讨论】:

我不知道codeigniter,但是您要传递的id 值是多少? 忽略该函数,它用于调用我的 tabledata 及其工作,导致它出错的原因是显示 @Sujitmohanty30 【参考方案1】:

在阅读了很多 ORA 错误的帖子后,我可以解决我的问题。 我只需要添加 " ' ".$val." ' "

 $this->data['no_rek'] = ($this->data['no_rek'] =='')?$this->m_dao->getDataOneColumn("NOMER_REKJURNAL","TBL_MASTER_GUDANG","KODE_GUDANG","'".$this->data['kode_gdg']."'")['VAL']:$this->data['no_rek'];

【讨论】:

以上是关于Codeigniter 中的 Oracle 查询给出 ORA-01722 和 ORA-01756的主要内容,如果未能解决你的问题,请参考以下文章

Codeigniter 和 Oracle 获取插入查询的 last_id

Codeigniter - 使用 json 将单个查询结果传递给控制器​​ - 如果存在

Codeigniter和Oracle Query Results不同步

Codeigniter 和 PHP - 强制 404?

mysql慢查询中的Codeigniter会话查询

活动记录 CodeIgniter 2 中的这个查询有啥问题?