CodeIgniter - ActiveRecords und Oracle - Konfiguration
Ich hatte ein Problem mit ActiveRecords - CI füge Klammern zu den Tabellennamen hinzu - so gibt Oracle Fehler zurück.
Hier gibt es einige Informationen, wie man das Problem behebt :)
Konfigurieren Sie zuerst Ihre Datenbank
Meine alte DNS-Konfiguration sieht so aus
$dsn = array(
'phptype' => 'oci8',
'hostspec' => '192.xx.215.xx',
'service' => 'yyyyy',
'port' => '1521',
'username' => 'zzzzz',
'password' => 'aaaaa'
);
Also habe ich hinzugefügtapplication\config\database.php
diese:
$db['oracle']['hostname'] = "192.xx.215.xx/yyyyy";
$db['oracle']['username'] = "zzzzz";
$db['oracle']['password'] = "ttttt";
$db['oracle']['database'] = "dbname.table";
$db['oracle']['dbdriver'] = "oci8";
$db['oracle']['dbprefix'] = "";
$db['oracle']['pconnect'] = FALSE; //must be false
$db['oracle']['db_debug'] = TRUE;
$db['oracle']['cache_on'] = FALSE;
$db['oracle']['cachedir'] = "";
$db['oracle']['char_set'] = "utf8";
$db['oracle']['dbcollat'] = "utf8_general_ci";
imsystem\database\drivers\oci8\oci8_driver.php
Zeile ersetzen
return preg_replace('/['.$this->_escape_char.']+/', $this->_escape_char, $str);
mit
// remove duplicates if the user already included the escape
$str = preg_replace('/['.$this->_escape_char.']+/', $this->_escape_char, $str);
$str = rtrim($str,'"');
$str = ltrim($str,'"');
$str = str_replace('"."', '.', $str);
return $str;
Jetzt kann ich dein Model anrufen
$this->oracle = $this->load->database('oracle', TRUE);
Jetzt sollten Oracle und Ci funktionieren! :)