• ベストアンサー

OCILogonとOra_Logonの違いなど

tujigeの回答

  • ベストアンサー
  • tujige
  • ベストアンサー率68% (13/19)
回答No.1

まず、OCILogon と Ora_Logon の違いは、ORACLE 7と ORACLE 8以降の違いと考えてもらって結構だと思います。(すごい大雑把ですが。) 頭に「OCI」がつくORACLE関数は、ORACLE 8以降、「Ora」がつく場合は、ORACLE 7用と。 ただ、BLOB, CLOB などを使用しようと思ったら、「OCI」関数でないといけなかったような。 また、parse, exec, fetch はそれぞれ、 parse: SQL文を解析する exec: parse した SQL 文を実行 fetch: 選択されたレコードを取得 となります。 なので、SELECT の流れとして、 SQL文作成 -> SQL文の解析 -> 実行 -> データの取得 となります。

参考URL:
http://www.php.net/manual/ja/ref.oci8.php
masaichi1212
質問者

お礼

へぇぇ、そうなんだぁ。 じゃあ開発環境によってどちらかを使うか変わってくるってことですね。 ありがとう御座いましたtujigeさん!

関連するQ&A

  • 空フィールドが表示されない

    A B C ----- 1 2 1 2 2 3 のようなテーブルを $strSQL = "select A,B,C from XXX"; $parsed = oci_parse( $db , $strSQL ); oci_execute($parsed); $data = oci_fetch_array($parsed, OCI_BOTH ); というコードから参照しようとすると、 Aの値のみしか参照されません。 DB上にデータある場合は、BもCも取得できます。 NULL値も参照するようにするには、どうすればよいのでしょうか?

    • ベストアンサー
    • PHP
  • PostgreSQLからOracleへの移行で

    はじめまして。 PostgreSQL+PHP4で動作していたスクリプトを Oracle+PHP4に移行する作業をしています。 SELECTで取得された行の件数を得る為に、 pg_num_rows(result) を使っている箇所があるのですが、それと 同様の動作をするOCI関数はあるでしょうか? ※都合により、DBアクセス関数は全てOCI関数での 実装を予定しています。 ora_numrows()が使えれば良かったんですけれど。。

    • 締切済み
    • PHP
  • ORACLE と PHP

    以下のローカル環境で、Webサイトの練習を行っております。 PHPからORACLEへアクセスするためには、どのような設定を行う必要があるでしょうか? よろしくお願いいたします。 <環境>  OS :Windows2000  DB :OracleWorkgroupServer 8.1.6  サーバ:apache  WEB :PHP <状況>  以下の文の個所で、PHPエラーになってしまうんです。  ちなみに、apacheとPHPの設定をした後、普通にOracle8.1.6をインストールしただけで、  それ以上の環境設定はしてません。  やっぱり、ODBCか何かの設定が必要なのでしょうか?   $conn = Ora_Logon("system", "manager");

  • 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
  • PHP5でOracle接続がエラー

    Linuxサーバー(Oracle(10.1)+Apache(2.0.52)+PHP(5.0.5)) からデータを参照し、ブラウザで表示するものを作成しようとしています。 PHPからオラクルへ接続テストをしたところ、うまくいきませんでした。 $conn=oci_connect($user,$pass,$db); これがORA-12514のエラーになります。 エラーの原因がわかりません。どういうことを確認すればいいですか? tnsnames.oraとlistener.oraの"HOST"はIPアドレスにしていますが、 リスナーのステータス(コマンド:lsnrctl status) で見た"HOST"は<*.co.jp>というふうになっています。 これは問題ないのでしょうか? (tnsnames.ora) <$DB> = (DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = <IPアドレス>)(PORT = 1521)) (CONNECT_DATA = (SERVER = DEDICATED) (SERVICE_NAME =<$db>) ) ) (listener.ora) LISTENER = (DESCRIPTION_LIST = (DESCRIPTION = (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1)) ) (DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = <IPアドレス>)(PORT = 1521)) ) ) (リスナーのステータス) リスニング・エンドポイントのサマリー... (DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(KEY=EXTPROC1))) (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=<$db.**.co.jp>)(PORT=1521)))

  • Oracleに接続できません

    http://oshiete1.goo.ne.jp/qa4731410.htmlでの質問を踏まえた上で、悩んでおります。 PHPにてサーバにあるOracle9iサーバに、 クライアント(Oracle10gクライアントインストール済み)からPHPで接続しに行きたいのですが、 oci_connect関数が上手く機能していないようで、接続できません。 oci_connectの引数には、oci_connect("ユーザ名", "パスワード", "tnsname.oraにある名称") を設定して、接続をしようとしています。 接続エラーを見るため、oci_errorにてエラーをキャッチしているのですが、 そのエラー内容が空っぽ(Falseで返ってくる)のため、何がおかしいのかわからない状況です。 構築環境は以下の通りです。 OS:WindowsXP(SP3) Webサーバ:IIS 使用DB:Oracle9i(クライアントは10g) 珍しい組み合わせのため、あまり情報がない状態です。 PHP、Webサーバの設定は色々なサイトを確認して設定できたつもりなのですが、 どこかしらに不備があるのでしょうか? Apacheであれば、エラーがログに残るようですが、IISにそういった機能はないでしょうか? 何かアドバイス等ありましたらお願いします。

    • 締切済み
    • PHP
  • どうしてもParse errorがでます

    独習PHPという本でプログラミングを勉強しています。 本の通りにプログラムを書いたのですがどうしてもエラーがでます。 Parse error: parse error, unexpected ';' in C:\Program Files\Apache Group\Apache2\htdocs\insert_process.php on line 7 セミコロンも確認しました。どうかご教授ください。 以下がソースです。 <?php try { $db=new PDO('sqlite:samples.sqlite'); $db->setAttribute(PDO::ATTR_ERRMODE,PDO::ERRMODE_EXCEPTION); $db->exec("INSERT INTO address(name,address,tel,email) VALUES(" .$db->quote($_POST['name'].",".$db->quote($_POST['address']."," .$db->quote($_POST['tel'].",".$db->quote($_POST['email']).")"); header('Location: http://'.$_SERVER['HTTP_HOST'] .dirname($_SERVER['PHP_SELF']).'/insert_form.php'); } catch (PDOException $e){ print('エラー発生:'.$e->getMessage()); } ?>

    • ベストアンサー
    • PHP
  • PEARでOracleへ接続時にエラー

    Linuxサーバ環境でpearを用いてPHPからOracleに接続したいのですがうまくいきません。 <?php require_once("DB.php"); $dsn = "oci8://SCOTT:tiger@DBサーバIP/DB名"; $db = DB::connect($dsn); if (DB::isError($db)) { echo "接続エラー"; } else { echo "接続成功"; } ?> というPHPにアクセスすると、接続エラーとしか表示されません。 接続先のDBに該当のユーザは存在しており、このWebサーバからSQLplusで sqlplus scott/tiger@//DBサーバIP:1521/DB名 で接続はできております。 OS:CentOS 5.2 (VMWare上で稼働) カーネル:2.6.18-92.el5 Apache:2.2.9 PHP:5.2.6 PHP-PEAR:1.4.9 接続先Oracle:9.2.0.1.0 (イントラ同セグメント内で稼働) 尚、同様の方法でWebサーバ内で稼働しているMysqlへは問題なく接続できております。 以上、心当たりのある方がいらっしゃいましたらお願い致します。

    • 締切済み
    • PHP
  • PHPからベーシック認証のかかっている場所からファイルを取得

    まいどお世話になっております。 今回もよろしくお願いします。 PHPで readfile("http://***.***.***"); などが可能ですが、 そのURLにベーシック認証がかかっているときどうやったらファイルの内容を取得したりできるでしょう? 認証用のユーザー名とパスワードは分かっている状況で、です。 実は以下のようなことで困ってまして、 これはPHPの問題ではなくて、サーバーの設定などによるものなのでしょうか? ↓-----------------↓ Smartyのテンプレートの中で {fetch file="http://***"} という風に書きたいのですが、そのファイルがおいてある場所にベーシック認証がかけてあるので、読み取れないのです。 ↑-----------------↑

    • ベストアンサー
    • PHP
  • PHPのPostgresql インサート処理

    PHPである携帯用アプリを作成しています。 ユーザ登録処理画面でパソコン上からDBにインサートすると成功するのに携帯からだとDBエラーになります。 インサートする項目は10項目あります。 エラー文は以下です。 Warning: pg_exec(): Query failed: ERROR: parser: parse error at ornear "," at character27 . in /~path名(セキュリティ上書きません) 他の処理でインサート項目が1つだとインサートが成功します。 原因がどうしてもわかりません。 Postgresqlの規約があるのでしょうか?それとも携帯での規約でしょうか? よろしくお願いします。

    • ベストアンサー
    • PHP