0
我使用的是oracle-10g的php-activerecord。我遇到的問題與oracle列區分大小寫。php-active記錄oracle情況敏感列
class Employee extends ActiveRecord\Model{
static $table_name = 'EMPLOYEE';
static $primary_key = 'PERSON_ID';
static $belongs_to = array(
array('supervisor', 'class_name' => 'Employee','foreign_key'=>'SUPERVISOR_ID')
);
}
測試:
$employee = Employee::first();
echo $employee->supervisor_ID; // Does not work - Oracle Columns are case sensitive
echo $employee->SUPERVISOR_ID; // Prints ID
$employees = Employee::find('all', array('limit' => 10, 'include' => array('supervisor')));
錯誤:
Fatal error: Uncaught exception 'ActiveRecord\UndefinedPropertyException' with message 'Undefined property: Employee->supervisor_id
爲什麼正在尋找小寫supervisor_id當我定義的外鍵SUPERVISOR_ID?我可以讓它不區分大小寫嗎?我很感激幫助。谷歌今天失敗了。
UPDATE:
我發現這個Yii框架網站:
「的原因似乎只是部分Oracle相關的Oracle不依賴於列名的大小寫敏感的,只要它們沒有在引號中指定,如果是這樣,它需要精確的列名拼寫,因此,似乎在ActiveRecord下面的Yii代碼中必須有一個表名帶有引號的部分,導致上述問題「。
^^因此,好像我需要破解phpactiverecord代碼的某處,以避免引用列名。我猜phpactiverecord與甲骨文很差。性能也應該很差。