お世話になっております。
kohanaからoracleへのpdo接続について伺いたく質問させていただきます。
現在vagrant + virtualboxの中にoracleを入れ、kohanaからpdo接続させようとしています。
しかし、ブラウザから接続するとchromeでは「このサイトにアクセスできません」、firefoxでは「正常に接続できませんでした」という画面が表示されてしまいます。
以下のコードでは成功するため、phpからoracleへの接続自体はできています。
php
1define("DB_HOST", "192.168.33.10"); 2define("DB_PORT", "1521"); 3define("DB_USERNAME", "username"); 4define("DB_PASSWORD", "password"); 5define("DB_SID", "XE"); 6 7try { 8 $dbh = new PDO("oci:dbname=".DB_HOST.":".DB_PORT."/".DB_SID, DB_USERNAME, DB_PASSWORD); 9 $dbh->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); 10 $sql = 'SELECT * FROM tbl_user'; 11 $data = $dbh->query($sql); 12 if( !empty($data) ) { 13 foreach( $data as $value ) { 14 echo $value['user_name']; 15 } 16 } 17} catch(PDOException $e){ 18 die($e->getMessage()); 19}
kohanaからoracleへの接続の仕方を教えてもらえないでしょうか?
以下はmodules/database/config/database.phpのコードになります。
php
1<?php defined('SYSPATH') OR die('No direct access allowed.'); 2 3return array 4( 5 'default' => array 6 ( 7 'type' => 'PDO', 8 'connection' => array( 9 /** 10 * The following options are available for PDO: 11 * 12 * string dsn Data Source Name 13 * string username database username 14 * string password database password 15 * boolean persistent use persistent connections? 16 */ 17 'dsn' => 'oci:host=192.168.33.10:1521; dbname=XE', 18 'hostname' => '192.168.33.10', 19 'database' => 'XE', 20 'username' => 'username', 21 'password' => 'password', 22 'persistent' => FALSE, 23 ), 24 /** 25 * The following extra options are available for PDO: 26 * 27 * string identifier set the escaping identifier 28 */ 29 'primary_key' => '', // Column to return from INSERT queries, see #2188 and #2273 30 'schema' => '', 31 'table_prefix' => '', 32 'charset' => 'utf8', 33 'caching' => FALSE, 34 'profiling' => FALSE, 35 ), 36);
使用ツールとバージョン
・centos6.9
・Oracle XE(11g Release 2)
・php5.6
・kohana3.3
・oracle-instantclient12.1(x86_64)
・oci8
以下のリンクを参考にoracleのインストールと、phpからの接続を行いました。
https://qiita.com/murachi1208/items/36a226c40fdb8436ec7a
https://mike-neko.github.io/blog/oracle-cent/