Как я могу подключиться к Oracle с помощью yii2?

Есть файл main-local.php:

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

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

PDOException: SQLSTATE[]: (null) Caused by: PDOException

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

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

попробуйте изменить на localhost посмотрите этот Почта, если это вам поможет.

Muhammad Omer Aslam 19.02.2019 09:47
Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Symfony Station Communiqué - 7 июля 2023 г
Symfony Station Communiqué - 7 июля 2023 г
Это коммюнике первоначально появилось на Symfony Station .
Оживление вашего приложения Laravel: Понимание режима обслуживания
Оживление вашего приложения Laravel: Понимание режима обслуживания
Здравствуйте, разработчики! В сегодняшней статье мы рассмотрим важный аспект управления приложениями, который часто упускается из виду в суете...
Установка и настройка Nginx и PHP на Ubuntu-сервере
Установка и настройка Nginx и PHP на Ubuntu-сервере
В этот раз я сделаю руководство по установке и настройке nginx и php на Ubuntu OS.
Коллекции в Laravel более простым способом
Коллекции в Laravel более простым способом
Привет, читатели, сегодня мы узнаем о коллекциях. В Laravel коллекции - это способ манипулировать массивами и играть с массивами данных. Благодаря...
Как установить PHP на Mac
Как установить PHP на Mac
PHP - это популярный язык программирования, который используется для разработки веб-приложений. Если вы используете Mac и хотите разрабатывать...
0
1
343
2

Ответы 2

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

Итак, ваш dsn должен быть таким:

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

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

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

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

Спасибо за ваш ответ, я добавил charset=UTF8, но это мне не помогло. Та же проблема

Tair Adibek 19.02.2019 06:31

Пробовали ли вы печатать phpinfo() и проверяли, правильно ли загружены ваши драйверы Oracle?

akshaypjoshi 19.02.2019 06:32

да, это - Oracle (OCI) driver for PDO - Wez Furlong

Tair Adibek 19.02.2019 06:36

Ошибка 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'];
}

?>

Спасибо за ваш ответ! Сделал как вы показали, но та же ошибка SQLSTATE[]: (null)

Tair Adibek 19.02.2019 08:53

Как вы установили PDO_OCI?

Christopher Jones 19.02.2019 23:08

только что скачал драйвер с сайта оракула, поместил его в apache/bin и php/ext. После раскомментирования в php.ini

Tair Adibek 20.02.2019 04:12

"веб-сайт оракула"? который из? Какая операционная система. Чем больше информации вы дадите, тем легче вам будет помочь.

Christopher Jones 20.02.2019 04:24
pecl.php.net/package/oci8 — этот сайт. 2.1.3 версия x64 php 7.0 Non Thread Safe (NTS) x64
Tair Adibek 20.02.2019 04:32

(a) это OCI8, а не PDO_OCI (b) это не веб-сайт Oracle.

Christopher Jones 20.02.2019 04:38

Лучше всего обновить свой исходный пост всеми подробностями о том, что вы скачали и что вы изменили в php.ini и т. д. Таким образом, мы можем помочь.

Christopher Jones 20.02.2019 04:39

Хорошо. Какой из них вы можете порекомендовать?

Tair Adibek 20.02.2019 04:39

Другие вопросы по теме