array ( 0 => 'index.php', 1 => 'PHP Manual', ), 'head' => array ( 0 => 'UTF-8', 1 => 'ja', ), 'this' => array ( 0 => 'function.db2-lob-read.php', 1 => 'db2_lob_read', ), 'up' => array ( 0 => 'ref.ibm-db2.php', 1 => 'IBM DB2 関数', ), 'prev' => array ( 0 => 'function.db2-last-insert-id.php', 1 => 'db2_last_insert_id', ), 'next' => array ( 0 => 'function.db2-next-result.php', 1 => 'db2_next_result', ), 'alternatives' => array ( ), 'source' => array ( 'lang' => 'ja', 'path' => 'reference/ibm_db2/functions/db2-lob-read.xml', ), ); $setup["toc"] = $TOC; $setup["toc_deprecated"] = $TOC_DEPRECATED; $setup["parents"] = $PARENTS; manual_setup($setup); ?>
(PECL ibm_db2 >= 1.6.0)
db2_lob_read — LOB ファイルから、ユーザーが定義したサイズの内容を取得する
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.