• ベストアンサー

PHP:OCILogonについて

PHP4.3.11、IIS5.0、Oracle10gを使用してテーブルからデータを 一覧表示させるテストプログラムを作成しました。 関数はORACLE8関数を使用しました。 正しく実行できたのですが時間が10秒くらいかかるため、echo等で調べたところ OCILogonの部分で非常に時間がかかっていることがわかりました。 SQLの実行からは時間はほとんどかかっていません。 ORACLEは初めてなので困っています。 OCILogonで時間がかかる原因として考えられるものがあれば教えてください。

  • Oracle
  • 回答数1
  • ありがとう数1

質問者が選んだベストアンサー

  • ベストアンサー
回答No.1

windowsサーバの場合、認証に時間がかかっているケースが多いです。 windowsサーバ(DBサーバ)のsqlnet.oraを確認してください。 SQLNET.AUTHENTICATION_SERVICES=(NTS) が書かれているようなら、コメント(行頭に#)にしてみてください。 それで改善するなら、認証に時間がかかっているということです。

関連するQ&A

  • PHP + Oracleで『処理中です』を表示したい…

    PHP + Oracleで『処理中です』を表示したい… PHP5 + Oracle10gでの開発中です。 フォーム1(1.php)でUser・PWを入力し、 ボタンをクリックすると SQL(SELECT文)を実行して結果をフォーム2(2.php)に 表示する』といったものを開発したいと考えています。 結果画面でのSQL結果表示は問題なくできたのですが、 結果表示までに時間がかかってしまいます。 2.phpはこんな感じです。 <?php // POSTされたUser・PWのチェック // <head>をecho // Oracleに接続 // SQL実行 <-- これが時間がかかる // <body>をecho <-- <table>にSELECT結果をセット ?> そこで、SELECT結果を表示するまでの間『処理中です』みたいなものを 表示したいのですがどうしたらいいのでしょうか。 可能であれば、'処理中です'という文字と プログレスバーのようなGIFを表示したいと思います。 よろしくお願いいたします。

    • 締切済み
    • PHP
  • PHP4とORACLE接続について

    こんにちは。質問をさせてください。 過去レスで調べたのですが、わからない部分がいくつかあったので 改めてご質問させていただきます。 PHP4とORACLEを接続し、ただ指定したテーブルからデータを取得する のみの動作を行いたいと考えています。 PHP4とapacheの環境設定は終了しています。 下記のソースを実行するとメモリがReadに・・・というエラーメッセージが表示されます。 ----------sample.php-------------------- <?php /* Oracleに接続 */ $conn = OCILogon("***", "***", "***"); /* SQLの作成 */ $sql = "select * from sample_php_tbl"; /* SQLのparse */ $sql = OCIParse($conn, $sql); /* 実行 */ $ncols = OCIExecute($sql, OCI_DEFAULT); /* SELECT文ならFETCH */ While (OCIFetch($sql)) { $tmp = OCIResult($sql, "COLUMN_NAME"); } /* リソースの解放 */ OCIFreeStatement($sql); /* 切断 */ OCILogoff($conn); ?> -------------------------------------------------- Oracleやその他の設定がいまいち理解できません。 ご存知の方、この件に関して詳しいサイトをご存知の方 教えていただければ幸いです。 ご質問の内容がわかりづらいかもしれませんが、宜しくお願いいたします。

    • ベストアンサー
    • PHP
  • PHPのexecで別PHPの実行

    「エックスサーバー」というレンタルサーバーを使用しています。 PHPファイルの中で[exec()]関数を用いて、別ファイルのPHPを実行させたいと考えております。  ・PHPバージョン:5.3.3  ・ドメイン:XXXXX.xsrv.jp 以下の内容(ProgramA)を実行すると、 [exec()]関数で呼び出している処理(ProgramB)が実行されていないように思います。 どのように修正したら、(ProgramB)が実行されるのでしょうか? どうかご教示くださいませ。 ---ProgramA.php (起動する側)---------------------- <?php exec('/usr/bin/php5.3 /home/XXXXX(ユーザー名)/xsrv.jp(ドメイン)/public_html/AAA/BBB/ProgramB.php'); echo "test!"; ?> ※ProgramA.phpを実行すると、ブラウザには「test!」という文字列が表示されます。 ※ProgramA.phpのパーミッションは755に設定されています。 ---ProgramB.php (起動される側)---------------------- <?php echo"HelloWorld"; ?> ※ProgramB.phpのパーミッションは755に設定されています。

    • 締切済み
    • PHP
  • PHP ORACLE拡張モジュールについて

    ご質問があります、どなたかアドバイスを頂けますでしょうか 現在 Fedora5にてAPACHE + PHP + ORACLE(別のPCにインストール) にて作業を行いたいと思い本やWEBで調べている所です。 ApacheとPHPをrpmパッケージインストール、 Oracle Instant Clientをインストールしました。 その後PHPでOracle8関数使用して接続したく「phpinfo」にoci8の項目が表示されるようにしようと思い、Oracleデータベースの拡張モジュールをyumでインストールしようとすると「Nothing to do」となって しまいます。「yum -y install php-oci8 などと試しています。」 コマンドがおかしいのか、またyumに設定したミラーサイトにこういったoracle拡張モジュールがないのか、などと考えています。 APACHEやPHPをパッケージでインストールした際のOracle接続方法 (できればOracle8関数での接続) またOracle拡張モジュールのダウンロード方法(場所)などアドバイスがあればお願い致します。 長文になりまた分かりずらい部分があるかと思いますが、 よろしくお願いします。

    • ベストアンサー
    • PHP
  • PHPとOracleの接続ができない

    ApacheとPHP5.1.5とOracle 10g XEを使用しています。 PHPのプログラムで、oracleへの接続を試みていますが、 undefined function OCILogon() というエラーが表示されてしまいます。 以下、今回の状態を記述します。 ・php.iniのextension=php_oci8.dllは「;」を外してあります。 ・php.iniのextension_dirもdllがある場所に設定しています。 ・phpinfoで、ociの項目が表示されない。 ・もちろん、php.iniの場所は合っていますし、変更後はapacheの再起動も行っています。 ・プログラムはネットで拝見したPHP5用のものなので、プログラムの間違いではないと思います。 原因が分かる方がいらっしゃいましたら、回答よろしくお願いします。

    • 締切済み
    • PHP
  • PHPとOracle

    こんにちは。質問させてください。 今、PHPの勉強をしています。 ApacheとPHP4.1.2を使用しようとしています。 今つかっているPCから別のPCに作成したソースを移動して 移動したPCで動作確認を行っているのですが、 プログラム中にオラクル関連の関数ocilogonを使用しようと したのでが、Undefined function ... というエラーが 出てしまいます。 以前も同じエラーが発生したときに INIファイルかDLLをC:¥WINNTに入れて PHP.iniの設定も変えたと記憶しているのですが 現在しようしているPCの設定をどうかえたか忘れてしまいました(泣) ご存知の方いらっしゃいますでしょうか?

    • ベストアンサー
    • PHP
  • 「リスナーがありません」Warningの解決方法は?

    PHPでOracleサーバに接続し、Oracle内のデータを表示させようとしています。 Warning: ocilogon():RA-12541: TNS: リスナーがありません と表示されて、データが表示できません。 何が起っているのでしょうか? どなたか、ご教示お願いいたします。

  • php データ削除

    一覧画面に更新、削除というボタンをつくり番号を受け取って削除したいのですが、削除ボタンを押しても画面は変わるのですが削除されません 助けてください 番号 int プライマリーキー 氏名 varchar 住所 varchar 一覧画面のソース <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title>一覧画面</title> </head> <body> <BLOCKQUOTE> <BR>一覧画面<BR><BR> <?php $con=mysqli_connect("localhost","root","admin","db_test"); // Check connection if (mysqli_connect_errno()) { echo "Failed to connect to MySQL: " . mysqli_connect_error(); } $result = mysqli_query($con,"SELECT * FROM tbl_test"); echo "<table border='1'> <tr> <th>番号</th> <th>氏名</th> <th>住所</th> </tr>"; while($row = mysqli_fetch_array($result)) { echo "<tr>"; echo "<td>" . $row['番号'] . "</td>"; echo "<td>" . $row['氏名'] . "</td>"; echo "<td>" . $row['住所'] . "</td>"; echo "<form action=koushin_input.php method=post>"; echo "<td><input type=submit value=更新></td>"; echo "</form>"; echo "<form action=sakujo.php method=post>"; echo "<td><input type=submit value=削除></td>"; echo "</form>"; echo "</tr>"; } echo "</table>"; mysqli_close($con); ?> <BR><BR><BR> <A HREF="http://localhost/regist.php"> <INPUT TYPE = "SUBMIT" VALUE = "新規登録"></A> </BLOCKQUOTE> </body> </html> 削除ソース  sakujo.php <html> <body> <? // データベースに接続 if(!$con=mysql_connect("localhost","root","admin")){ echo"接続エラー"; exit; } // データベースを選択 if(!mysql_select_db("db_test",$con)){ echo"データベース選択エラー"; exit; } // DELETE文を実行 $sql = "delete from tbl_test where '番号'= 番号; if(!$res=mysql_query($sql)){ echo "SQL実行時エラー"; exit; } // データベースから切断 mysql_close($con); // 登録完了メッセージの表示 echo "削除完了"; ?> </body> </html> どういう風にpostで渡せばいいですか?

    • ベストアンサー
    • MySQL
  • PHPのSleepについて

    PHPでTwitterでメンションされたら自動返信するプログラムを書いて、Lolipopのcronにて1分間隔で実行されるようにしています。 しかし、どうしても1分間隔だと返信までに時間がかかってしまう場合があり、もう少し間隔を狭くしたいと考えております。 そこで、PHPのSleep関数を使用して 、関数呼び出し→20秒待機→関数呼び出しというプログラムにしました。 (ちなみにLolipopはPHPの処理時間が30秒までに制限されています) ここで疑問なのですが、Sleepの状態でもサーバー側に高い負荷がかかってしまうものなのでしょうか。 このプログラムでも問題ないのか、もしくはやめておいた方がよいのか教えていただけたら幸いです。

    • 締切済み
    • PHP
  • PHP5とORACLE10の接続方法

    参考意見を頂ければと思い質問しました。 現在PHP5+ORACLE10gRelease2でDB接続をしようと思っています。 またORACLEを使用したことがなく調べている状況です。 Oracle8関数の使用やPEAR、PDOなど何種類かあるよう ですが、実際現時点でどういった接続方法が一般的なのでしょうか。 環境としてはLinuxでwebサーバ、DBサーバを分けて接続予定です。 アドバイス等ございましたらよろしくお願いします。

    • ベストアンサー
    • PHP