(PECL CUBRID >= 8.4.1)
cubrid_lob2_seek64 — 移动 LOB 对象的游标
cubrid_lob2_seek64() 函数用于将 LOB 对象的游标位置移动 offset
参数中设置的值,到 origin
参数中设置的方向。如果要移动的 offset
大于整数数据可以存储的大小,可以使用此函数。
要设置 origin
参数,可以使用 CUBRID_CURSOR_FIRST
将游标位置从第一个开始向前移动 offset
个单位。在这种情况下,offset
必须为正值。
如果将 origin
用于 CUBRID_CURSOR_CURRENT
,则可以向前或向后移动。并且 offset
可以为正或负。
如果将 origin
用于 CUBRID_CURSOR_LAST
,则可以从 LOB 对象的末尾向后移动 offset
个单位,并且 offset
只能为正。
注意:
如果使用此函数移动 LOB 对象的游标位置,则应将
offset
作为字符串传递。
lob_identifier
LOB 标识符,作为 cubrid_lob2_new() 的结果或从结果集中获取。
offset
要移动游标的单位数。
origin
此参数可以是以下值
CUBRID_CURSOR_FIRST:从第一个开始向前移动。
CUBRID_CURSOR_CURRENT:从当前位置向前或向后移动。
CUBRID_CURSOR_LAST:从 LOB 对象的末尾向后移动。
示例 #1 cubrid_lob2_seek64() 示例
<?php
// test_lob (id INT, contents CLOB)
// doc_1.txt 的数据长度应大于 20101029056306120215。
$conn = cubrid_connect("localhost", 33000, "demodb", "dba", "");
cubrid_execute($conn,"DROP TABLE if exists test_lob");
cubrid_execute($conn,"CREATE TABLE test_lob (id INT, contents CLOB)");
$req = cubrid_prepare($conn, "INSERT INTO test_lob VALUES (?, ?)");
cubrid_bind($req, 1, 1);
$lob = cubrid_lob2_new($conn, "clob");
cubrid_lob2_import($lob, "doc_1.txt");
cubrid_lob2_bind($req, 2, $lob, 'CLOB'); // 或者 cubrid_lob2_bind($req, 2, $lob);
cubrid_execute($req);
cubrid_lob2_close($lob);
$req = cubrid_execute($conn, "select * from test_lob");
$row = cubrid_fetch_row($req, CUBRID_LOB);
$lob = $row[1];
cubrid_lob2_seek64($lob, "20101029056306120215", CUBRID_CURSOR_FIRST);
$data = cubrid_lob2_read($lob, 20);
echo $data."\n";
cubrid_disconnect($conn);
?>