簡體   English   中英

基於角色的訪問控制-RBAC YII V1 ORACLE

[英]Role-Based Access Control - RBAC YII V1 ORACLE

我正在使用yii v1和oracle數據庫開發應用程序,當我想使用RBAC(checkAccess)時,出現以下錯誤:

CDbCommand的狀態SQL:SQLSTATE [HY000]:常規錯誤:1405 OCIStmtFetch:ORA-01405:獲取的列值為NULL(/tmp/pdo/PDO_OCI-1.0/oci_statement.c:446)。 執行的SQL語句為:SELECT * FROM“ AUTHITEM” WHERE NAME =:NAME

桌子已經擺好了,我該如何解決呢? 有任何想法嗎?

提前致謝!

由於Ali提供了該錯誤修復程序的鏈接,因此您將獲得Oracle NULL ,該Oracle NULL無法轉換為php NULL

從lob字段獲取時,pdo_oci不會將oracle null轉換為php null。

因此,我建議先進行NULL檢查,然后根據結果對角色進行請求:

SELECT * FROM WHERE NAME IS NULL或NAME =''

另一個選擇是使用AR findBySQL()方法並在其中使用NVL() Oracle函數來獲取數據。

我認為的第三個選擇是將您的角色數據庫表限制為NOT NULL值。

那是pdo_oci驅動程序的問題,您可以使用此擴展Yii的PHPPDO擴展來避免此錯誤。 將其解壓縮到protected / extensions下,然后在protected / config / main.php中向數據庫連接添加以下內容:

db'=>array(
      'class'=>'application.extensions.PHPPDO.CPdoDbConnection',
      'pdoClass' => 'PHPPDO',

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM