Php/docs/function.db2-lob-read

提供:Dev Guides
< Php
移動先:案内検索

db2_lob_read

(PECL ibm_db2 >= 1.6.0)

db2_lob_read LOB ファイルから、ユーザーが定義したサイズの内容を取得する


説明

db2_lob_read ( resource $stmt , int $colnum , int $length ) : string

db2_lob_read() により、 結果セットの指定したカラムから、指定したサイズの LOB データを取得します。


パラメータ

stmt
LOB データを含む有効な stmt リソース。
colnum
stmt リソースの結果セット内の、有効なカラム番号。
length
stmt リソースから取得する LOB データのサイズ。


返り値

指定したサイズのデータを返します。データが取得できない場合は false を返します。


例1 さまざまな型のデータの取得


<?php/* データベースへの接続パラメータ */$db = 'SAMPLE';$username = 'db2inst1';$password = 'ibmdb2';/* 接続リソースの取得 */$conn = db2_connect($db,$username,$password);if ($conn) {    $drop = 'DROP TABLE clob_stream';    $result = @db2_exec( $conn, $drop );    $create = 'CREATE TABLE clob_stream (id INTEGER, my_clob CLOB)';    $result = db2_exec( $conn, $create );    $variable = "";    $stmt = db2_prepare($conn, "INSERT INTO clob_stream (id,my_clob) VALUES (1, ?)");    $variable = "THIS IS A CLOB TEST. THIS IS A CLOB TEST.";    db2_bind_param($stmt, 1, "variable", DB2_PARAM_IN);    db2_execute($stmt);    $sql = "SELECT id,my_clob FROM clob_stream";    $result = db2_prepare($conn, $sql);    db2_execute($result);    db2_fetch_row($result);    $i = 0;    /* LOB データの読み込み */    while ($data = db2_lob_read($result, 2, 6)) {        echo "Loop $i: $data\n";        $i = $i + 1;    }    $drop = 'DROP TABLE blob_stream';    $result = @db2_exec( $conn, $drop );    $create = 'CREATE TABLE blob_stream (id INTEGER, my_blob CLOB)';    $result = db2_exec( $conn, $create );    $variable = "";    $stmt = db2_prepare($conn, "INSERT INTO blob_stream (id,my_blob) VALUES (1, ?)");    $variable = "THIS IS A BLOB TEST. THIS IS A BLOB TEST.";    db2_bind_param($stmt, 1, "variable", DB2_PARAM_IN);    db2_execute($stmt);    $sql = "SELECT id,my_blob FROM blob_stream";    $result = db2_prepare($conn, $sql);    db2_execute($result);    db2_fetch_row($result);    $i = 0;    /* LOB データの読み込み */    while ($data = db2_lob_read($result, 2, 6)) {        echo "Loop $i: $data\n";        $i = $i + 1;    }} else {    echo '接続に失敗しました: ' . db2_conn_errormsg();}?>

上の例の出力は以下となります。


Loop 0: THIS I
Loop 1: S A CL
Loop 2: OB TES
Loop 3: T. THI
Loop 4: S IS A
Loop 5:  CLOB 
Loop 6: TEST.
Loop 0: THIS I
Loop 1: S A BL
Loop 2: OB TES
Loop 3: T. THI
Loop 4: S IS A
Loop 5:  BLOB 
Loop 6: TEST.

参考

  • db2_bind_param() - PHP 変数を SQL 文のパラメータにバインドする
  • db2_exec() - SQL 文を直接実行する
  • db2_execute() - プリペアドステートメントを実行する
  • db2_fetch_row() - 結果セットポインタを次の行あるいは要求された行に設定する
  • db2_prepare() - 実行する SQL 文を準備する
  • db2_result() - 結果セットの行からひとつのカラムを返す