質問をすることでしか得られない、回答やアドバイスがある。

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

新規登録して質問してみよう
ただいま回答率
85.48%
Oracle

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

PDO

PDO(PHP Data Objects)はPHPのデータベース抽象化レイヤーです。

PHP

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

Q&A

2回答

9277閲覧

XAMPPを用いたOracleデータベースへの接続について

Soichiro

総合スコア10

Oracle

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

PDO

PDO(PHP Data Objects)はPHPのデータベース抽象化レイヤーです。

PHP

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

0グッド

0クリップ

投稿2016/05/06 08:06

編集2016/05/06 08:10

###前提・実現したいこと
いつもお世話になっております。
XAMPPをローカルへインストールしOracleのデータベースへの接続を試みたのですが、うまくいかず困り果てております。

###発生している問題・エラーメッセージ

PDOException [ Error ]: SQLSTATE[]: pdo_oci_handle_factory: <<Unknown>> (ext\pdo_oci\oci_driver.c:635)

###該当のソースコード

//### 定数設定 ### define("DEBUG_MODE", 1); define("DB_HOST", "接続先DBのドメイン"); define("DB_PORT", "接続先のポート"); define("DB_USERNAME", "username"); define("DB_PASSWORD", "xxxxxxxx"); define("DB_SID", "sid"); //### DB接続 ### try { $dbh = new PDO("oci:dbname=//".DB_HOST.":".DB_PORT."/".DB_SID, DB_USERNAME, DB_PASSWORD); $dbh->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); } catch(PDOException $e){ error("001", $e->getMessage()); }

###試したこと

  1. XAMPPを開発環境のwindowsへインストールしました。
  2. Instant Client Downloads for Microsoft Windows (32-bit) を解凍し環境変数のPATHへディレクトリを追加しました。
  3. php.iniの設定ファイルの以下をコメントアウトを外しました。

>extension=php_pdo_oci.dll
>extension=php_oci8_12c.dll
4. phpinfo()を参照し以下を確認しました。
>PDO drivers に「oci」が表示されていること
>PDO Driver for OCI 8 and later が「enabled」であること

###補足情報(言語/FW/ツール等のバージョンなど)
XAMPP
Apache 2.4.17
MariaDB 10.1.13
PHP 5.5.34
phpMyAdmin 4.5.1

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

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

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

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

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

guest

回答2

0

Oracleは別のサーバーですかね。
その場合、Oracleのツールでそちらに接続できた実績はありますか?
なんとなく、Oracle(client)を導入してないようにも見えます。

投稿2016/05/07 02:37

takasima20

総合スコア7458

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

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

Soichiro

2016/05/07 11:14

ご連絡ありがとうございます。 Oracleは別のサーバーでございます。 Oracleの SQLPlusやSQLDeveloper(stunnel併用)を用いて接続は確認できております。 どうぞよろしくお願いいたします。
takasima20

2016/05/07 11:26

では DB_SID は "sid" でしょうか。 デフォルトでは orcl とかですよね。 まあ、このへんは SQLPlus などで接続した際に 使うものですから間違ってるとも思えないのですが…
Soichiro

2016/05/08 13:09

ご連絡ありがとうございます。 仰るとおりSIDは「orcl」となっております。 引き続きどうぞよろしくお願いいたします。
takasima20

2016/05/08 14:07 編集

となると… httpサーバー起動時にOracle関連の環境変数は設定されてますか? $ORACLE_HOME など SQLPlus等を実行するために必要な 環境変数の設定があると思いますが、同等のものを httpサーバー 起動スクリプトあたりに追加設定する必要があります。 追記) /usr/local/apache2/bin/envvars に書いた記憶あります
guest

0

OracleとMariaDBは全く別のデータベースですが、Oracle本体はインストールされたのでしょうか?

投稿2016/05/07 02:32

LILI.IRON.FIST

総合スコア151

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

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

Soichiro

2016/05/07 11:13

ご連絡ありがとうございます。 Oracleは別サーバーとなっており既にサービスが稼働しております。 XAMPPは開発環境構築のため設定いたしました。 どうぞよろしくお願いいたします。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

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

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

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問