関数・クラス解説

oci_new_descriptor

version:PHP 5, PHP 7, PECL OCI8 >= 1.1.0 (公式)

空の新規 LOB あるいは FILE ディスクリプタを初期化する

公式リファレンス

書式

oci_new_descriptor ( resource $connection [, int $type = OCI_DTYPE_LOB ] ) : OCI-Lob

説明

ディスクリプタあるいは LOB ロケータを保持するリソースを確保します。

パラメータ

connection
oci_connect() あるいは oci_pconnect() が返す Oracle 接続 ID。
type
type として有効な値は、 OCI_DTYPE_FILE、OCI_DTYPE_LOB および OCI_DTYPE_ROWID です。

返値

成功した場合に新しい LOB あるいは FILE ディスクリプタ、 エラー時に FALSE を返します。

注意

注意: PHP バージョン 5.0.0 以前では、代わりに ocinewdescriptor() を使用しなければなりません。 まだこの名前を使用することができ、下位互換性のため oci_new_descriptor() への別名として残されていますが、 推奨されません。

サンプル

例1 oci_new_descriptor() の例

/* このスクリプトは HTML フォームからコールされるよう設計されています。  * また、$user, $passwor, $table, $where, $commitsizeがフォームから  * 渡されることを前提にしています。このスクリプトは、ROWID を用いて  * 選択された行を削除し、$commitsize 行毎にコミットします。  * (ロールバックがないので、注意して使用してください。)  */ $conn = oci_connect($user, $password); $stmt = oci_parse($conn, "select rowid from $table $where"); $rowid = oci_new_descriptor($conn, OCI_D_ROWID); oci_define_by_name($stmt, "ROWID", $rowid); oci_execute($stmt); while (oci_fetch($stmt)) {     $nrows = oci_num_rows($stmt);     $delete = oci_parse($conn, "delete from $table where ROWID = :rid");     oci_bind_by_name($delete, ":rid", $rowid, -1, OCI_B_ROWID);     oci_execute($delete);     echo "$nrows\n";     if (($nrows % $commitsize) == 0) {         oci_commit($conn);     } } $nrows = oci_num_rows($stmt); echo "$nrows deleted...\n"; oci_free_statement($stmt); oci_close($conn);     /* このスクリプトは LOB カラムにファイルをアップロードする例を示します。      * LOBカラムにアップロードを行うこの例に関するフォームは、      *       *       * ... のようなものが使用されます。      */   if (!isset($lob_upload) || $lob_upload == 'none'){ <form action="upload.php" method="post" enctype="multipart/form-data">Upload file: <input type="file" name="lob_upload" /><br /><input type="submit" value="Upload" /> - <input type="reset" value="Reset" /></form>   } else {      // $lob_upload には、アップロードされたファイルの一時的なファイル名が含まれます      // 安全にアップロードしたい場合は、マニュアルの      // ファイルアップロードに関する節を参照ください      $conn = oci_connect($user, $password);      $lob = oci_new_descriptor($conn, OCI_D_LOB);      $stmt = oci_parse($conn, "insert into $table (id, the_blob)                values(my_seq.NEXTVAL, EMPTY_BLOB()) returning the_blob into :the_blob");      oci_bind_by_name($stmt, ':the_blob', $lob, -1, OCI_B_BLOB);      oci_execute($stmt, OCI_DEFAULT);      if ($lob->savefile($lob_upload)){         oci_commit($conn);         echo "Blob のアップロードは成功しました\n";      }else{         echo "Blob をアップロードできませんでした\n";      }      $lob->free();      oci_free_statement($stmt);      oci_close($conn);   }

例2 oci_new_descriptor() の例

/* 入力パラメータとして clob を含む PL/SQLストアドプロシージャを  * コールする。  * PL/SQL ストアドプロシージャのシグネチャは次の通り。  *  * PROCEDURE save_data  *   Argument Name                  Type                    In/Out Default?  *   ------------------------------ ----------------------- ------ --------  *   KEY                            NUMBER(38)              IN  *   DATA                           CLOB                    IN  *  */ $conn = oci_connect($user, $password); $stmt = oci_parse($conn, "begin save_data(:key, :data); end;"); $clob = oci_new_descriptor($conn, OCI_D_LOB); oci_bind_by_name($stmt, ':key', $key); oci_bind_by_name($stmt, ':data', $clob, -1, OCI_B_CLOB); $clob->write($data); oci_execute($stmt, OCI_DEFAULT); oci_commit($conn); $clob->free(); oci_free_statement($stmt);

参考

  • oci_bind_by_name() - Oracle プレースホルダに PHP 変数をバインドする
  • ワード検索


    ※入力キーワードが、関数名・説明文・タグに含まれるものを検索

    関数名アルファベット別

    A B C D E F G H I J
    K L M N O P Q R S T
    U V W X Y Z _

    最終更新一覧

    stristr
     大文字小文字を区別せず文字列を検索し、ヒット箇所以降(あるいは以前)の文字列を返却

    stripslashes
     バックスラッシュでエスケープされた文字列から、バックスラッシュを取り除く

    stripos
     大文字小文字を区別せずに文字列が最初に現れる位置を取得する

    stripcslashes
     addcslashes() でクォートされた文字列をアンクォートする

    strip_tags
     文字列から HTML と PHP のタグを除去して返却

    strcspn
     指定した文字が最初に現れる位置を調べる

    strcoll
     ロケールに基づいて2つの文字列を比較し同じか(あるいは大小)を判定する

    strcmp
     2つの文字列を比較し同じか(あるいは大小)を判定する

    strchr
     strstr() のエイリアス

    strcasecmp
     2つの文字列を比較(大文字小文字を区別せず同じとみなす)

    カテゴリー一覧

    PHP の振る舞いの変更
    音声フォーマットの操作
    認証サービス
    コマンドライン関連
    圧縮およびアーカイブ
    暗号
    データベース関連
    日付および時刻関連
    ファイルシステム
    自然言語および文字エンコーディング
    画像処理および作成
    メール関連
    数学
    テキスト以外の MIME 型
    プロセス制御
    その他の基本モジュール
    その他のサービス
    検索エンジン用の拡張モジュール
    サーバー固有のモジュール
    セッション関連
    テキスト処理
    変数・データ型関連
    ウェブサービス
    Windows 用のモジュール
    XML 操作
    GUI用の拡張モジュール