PHP 4.0 Bug #6601 Updated: blobs retrieved from database are limited to 32768 nibbles
| From: | Bug Database | Date: | Mon, 09 Oct 2000 14:46:37 +0000 |
| Subject: | PHP 4.0 Bug #6601 Updated: blobs retrieved from database are limited to 32768 nibbles | ||
| Groups: | php.dev | ||
| Request: | Send a blank email to php-dev+get-34503@lists.php.net to get a copy of this message | ||
ID: 6601
User Update by: koos@kzdoos.xs4all.nl
Status: Closed
Bug Type: Sybase-ct (ctlib) related
Description: blobs retrieved from database are limited to 32768 nibbles
Thanks, this helped!
Previous Comments:
---------------------------------------------------------------------------
[2000-09-27 23:58:38] andi@php.net
Closed thanks to Magnus Jonsson:
This is a Sybase configuration issue and not a bug. If you haven't specified
TEXTSIZE in
the Sybase Configuration the default is set to 32k. If you want to use
larger text or
image fields change you Sybase Configuration or Use "SET TEXTSIZE (your
limit in bytes)"
query to set this param before doing a query.
---------------------------------------------------------------------------
[2000-09-07 09:23:16] koos@kzdoos.xs4all.nl
I store blobs in sybase IMAGE fields and when I retrieve them I only get the first 32768 nibbles and
nothing more.
I store them using:
$fp=fopen($userfile,'r');
$blob=bin2hex(fread($fp,filesize($userfile)));
$qid=sybase_query("
INSERT INTO blob(blobtype_id,title,body)
VALUES ($mimetypeid,'$blobtitle',0x".$blob.")");
and retrieve them using
$qid=sybase_query("
SELECT blobtype.mimetype,blob.body
FROM blob,blobtype
WHERE blob.blob_id=$blobobjectid
AND blob.blobtype_id=blobtype.blobtype_id",$conid);
if ($qid){
list($blobtype_mimetype,$blob_body)=sybase_fetch_row($qid);
header("Content-Type: $blobtype_mimetype");
$bloblen=strlen($blob_body);
echo pack("H".$bloblen,$blob_body);
}
using debug statements I found that $bloblen is never more then 32768, and the database contains
bigger datalength's.
32768 is a round number so I guess I ran into some buffer size. What to do and how to get the bigger
blobs.
PHP 4.0.2, apache 3.0.12
./configure --with-mysql --with-sybase-ct=/opt/sybase --with-apache=../apache_1.3.12
--enable-track-vars
---------------------------------------------------------------------------
Full Bug description available at: http://bugs.php.net/?id=6601