Codeigniter Oracle PDO-oci

2019-07-28 23:45发布

问题:

I am developing an application in Codeigniter. i have Oracle database and large number of data to use in my application. i want to connect PDO-oci.

i didn't find any solution. Please help me to connect oracle PDO-OCI to codeigniter.

$db['default'] = array(
    'dsn'   => 'mysql:dbname=(DESCRIPTION =
                    (ADDRESS = (PROTOCOL = TCP)(HOST = MY HOST NAME)(PORT = 1521))
                    (CONNECT_DATA =
                      (SERVER = DEDICATED)
                      (SERVICE_NAME = orcl)
                    )
                  )',
    'hostname' => '',
    'username' => 'MYUSERNAME',
    'password' => 'MYPASSWORD',
    'database' => '',
    'dbdriver' => 'oci8',
    'dbprefix' => '',
    'pconnect' => FALSE,
    'db_debug' => (ENVIRONMENT !== 'production'),
    'cache_on' => FALSE,
    'cachedir' => '',
    'char_set' => 'utf8',
    'dbcollat' => 'utf8_general_ci',
    'swap_pre' => '',
    'encrypt' => FALSE,
    'compress' => FALSE,
    'stricton' => FALSE,
    'failover' => array(),
    'save_queries' => TRUE

and the error is

Screen shot

回答1:

Your DSN is invalid. As documented in the PHP manual the DSN prefix should be oci: like so:

'dsn'   => 'oci:dbname=(DESCRIPTION =
                (ADDRESS = (PROTOCOL = TCP)(HOST = MY HOST NAME)(PORT = 1521))
                (CONNECT_DATA =
                  (SERVER = DEDICATED)
                  (SERVICE_NAME = orcl)
                )
              )',

I would, however, recommend using the 'EZCONNECT' syntax as this doesn't clutter your code:

'dsn' => 'oci:dbname=hostname/orcl',