🎄teratailクリスマスプレゼントキャンペーン2024🎄』開催中!

\teratail特別グッズやAmazonギフトカード最大2,000円分が当たる!/

詳細はこちら
Oracle

Oracleは、米オラクルが取り扱うリレーショナルデータベース管理システムです。メインフレームからPCまで、多様なプラットフォームに対応しています。

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

kohana

kohanaは、セキュア、軽量、使い安さを目的としたPHP5のフレームワークです。

Q&A

1回答

554閲覧

kohanaからoracleへのpdo接続が失敗する

shakesuke

総合スコア6

Oracle

Oracleは、米オラクルが取り扱うリレーショナルデータベース管理システムです。メインフレームからPCまで、多様なプラットフォームに対応しています。

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

kohana

kohanaは、セキュア、軽量、使い安さを目的としたPHP5のフレームワークです。

0グッド

0クリップ

投稿2019/09/11 05:47

編集2019/09/11 06:22

お世話になっております。

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/

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

Orlofsky

2019/09/11 06:18

質問に DB ServerとClient の正確なOS とそのバージョン、 32bit or 64bit を追記しては?
shakesuke

2019/09/11 06:24

ローカルの開発環境では、DB Serverはなく、プログラムもoracleも一つのcentosに入れています。
guest

回答1

0

'persistent' => FALSE,
'profiling' => FALSE,

この2行の , は必要でしょうか?

各ソフトのバージョンがやたらと古いのが気になります。

PHP5.6のセキュリティ対応は2018年に終了していますし、Oracle11.2 の製品版ももうどんなに大きなバグが発生してもパッチは提供しません。
Oracle EX 18c も提供されています。

投稿2019/09/11 06:41

Orlofsky

総合スコア16417

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

shakesuke

2019/09/11 06:49

2行の , を削除しても表示は変わりませんでした。 ソフトのバージョンは社内の本番環境に合わせていますので、ローカルの開発環境で変えてもいいのでしょうか?
Orlofsky

2019/09/11 07:20

本番環境でkohanaからoracleに接続できていて、同じバージョンで開発環境を再現したいならそれで作成しては? 上記に書いたように本番環境のバージョンアップが必要です。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.36%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問