繁体   English   中英

如何使用yii2连接到Oracle?

[英]How can I connect to Oracle using yii2?

main-local.php文件:

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

当我第一次尝试连接到数据库时,出现错误“找不到驱动程序”。 安装驱动程序后,出现以下错误:

PDOException:SQLSTATE [] :(空)原因:PDOException

在此处输入图片说明

请帮忙。

对于Oracle数据库,必须在dsn指定字符集:

因此,您的dsn应该像:

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

或尝试:

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

请在此处查看手册- 字符集详细信息讨论

错误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'];
}

?>

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM