Как я могу подключиться к Oracle, используя yii2? - PullRequest
0 голосов
/ 19 февраля 2019

Файл main-local.php :

'db' => [
        'class' => 'yii\db\Connection',
        'dsn' => 'oci:dbname=//[db_host:db_port]/[dbname]',
        'username' => '***',
        'password' => '***',
    ]

При первом подключении к БД возникла ошибка «драйвер не найден».После того, как я установил драйвер, возникает следующая ошибка:

PDOException: SQLSTATE []: (null) Причина: PDOException

введите описание изображения здесь

Пожалуйста, помогите.

Ответы [ 2 ]

0 голосов
/ 19 февраля 2019

Ошибка PDOException: SQLSTATE[]: (null) Caused by: PDOException не особенно полезна.

Попробуйте запустить автономный пример PDO_OCI и посмотрите, получите ли вы лучшую ошибку:

<?php

error_reporting(E_ALL);  // In PHP 5.3 use E_ALL|E_STRICT
ini_set('display_errors', 'On');

try {
    $dbh = new PDO('oci:dbname=localhost/orclpdb;charset=AL32UTF8', 'hr', 'hrpassword',
           array(PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION));
} catch (PDOException $e) {
    echo 'Connection failed: ' . $e->getMessage();
    exit;
}

$s = $dbh->prepare("select sysdate from dual");
$s->execute();
while ($r = $s->fetch(PDO::FETCH_ASSOC)) {
    echo $r['SYSDATE'];
}

?>
0 голосов
/ 19 февраля 2019

Для Oracle Database кодировка должна быть указана в dsn:

Таким образом, ваш dsn должен выглядеть так:

'dsn' => 'oci:dbname=//[db_host:db_port]/[dbname];charset=UTF8',

или попробуйте:

'dsn' => 'oci:dbname=//[db_host:db_port]/[dbname];charset=UTF-8',

Пожалуйста, проверьте руководство здесь - Подробная информация о кодировке и Обсуждение :

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...