RE: Interbase BLOB problem

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hi Peter,

Thanks for this. I have been waiting for the PHP Manuals to include
documentation on the interbase BLOB functions. I need to find a real
connection and download it <grin>

Actually my problem was that I have 2 machines - Windows (development
and testing) and Linux (Server). The site was initially made in an all
Linux environment. Now I am maintaining and expanding on my Windows box.

The problem was with the fopen(<file> "r") which on Windows needs to be
fopen(<file>, "rb") for binary files.

It is all working now.

Thanks again to all.

David Russell
IT Support Manager
Barloworld Optimus (Pty) Ltd
Tel: +2711 444-7250 
Fax: +2711 444-7256
e-mail: DavidR@BarloworldOptimus.com
web: www.BarloworldOptimus.com

-----Original Message-----
From: Peter Beckman [mailto:beckman@purplecow.com] 
Sent: 29 October 2002 05:47 PM
To: David Russell
Cc: php-db@lists.php.net
Subject: Re:  Interbase BLOB problem


Your SQL query doesn't need that semicolon at the end of the query --
lose it.

I never used ibase, so here's what I found from the PHP Manual page for
ibase_query:

Using BLOB

Insert BLOB:

/* create blob */
$blob_id = ibase_blob_create();

/* fill blob */
ibase_blob_add($blob_id, $var_datablob);

/* close new blob */
$blob_id_str = ibase_blob_close($blob_id);

/* insert into table */
ibase_query("INSERT INTO BLOB_TABLE (ID, BLOB) VALUES (1,
?)",$blob_id_str);

Open BLOB:

/* query */
$set = ibase_query("SELECT BLOB FROM BLOB_TABLE WHERE ID = 1");

/* fetche a row */
$row = ibase_fetch_object($set);

/* open BLOB for read */
$blob_id = ibase_blob_open($row->BLOB);

/* get BLOB data */
$stringBLOB = ibase_blob_get($blob_id);

/* print BLOB */
echo $stringBLOB;

/* close new blob */
ibase_blob_close($blob_id);

/* free result */
ibase_free_result($set);

Peter

On Tue, 29 Oct 2002, David Russell wrote:

> Hi all,
>
> I have a file I need to insert into a blob in a interbase table. Code 
> as
> follows:
>
>     $filehandle = fopen($file, "r");
>     $blob_id = ibase_blob_import($filehandle);
>     $qry = "INSERT INTO BPFATTACHMENTS ";
>     $qry = $qry . "(BPFATTACHMENTNO, BPF, ATTACHMENTTYPE, FILENAME, 
> FILESIZE, ATTACHMENT)";
>     $qry = $qry . "VALUES";
>     $qry = $qry . "($bpfAttNo, $BPFNo, $AttachmentType, '$file_name', 
> $file_size, ?);";
>     $res = ibase_query($qry, $blob_id);
>
> I have a ibase_pconnect prior to this.
>
> The problem is that is only adds a tiny part of the file (ie 5k of the

> 200k file) What should I be looking for?
>
> Thanks
>
> David Russell
> IT Support Manager
> Barloworld Optimus (Pty) Ltd
> Tel: +2711 444-7250
> Fax: +2711 444-7256
> e-mail: DavidR@BarloworldOptimus.com
> web: www.BarloworldOptimus.com
>

------------------------------------------------------------------------
---
Peter Beckman            Systems Engineer, Fairfax Cable Access
Corporation
beckman@purplecow.com
http://www.purplecow.com/
------------------------------------------------------------------------
---


-- 
PHP Database Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php

Attachment: smime.p7s
Description: application/pkcs7-signature


[Index of Archives]     [PHP Home]     [PHP Users]     [Postgresql Discussion]     [Kernel Newbies]     [Postgresql]     [Yosemite News]

  Powered by Linux