By using this site, you agree to our updated Privacy Policy and our Terms of Use. Manage your Cookies Settings.
434,775 Members | 1,432 Online
Bytes IT Community
+ Ask a Question
Need help? Post your question and get tips & solutions from a community of 434,775 IT Pros & Developers. It's quick & easy.

Fetching PDO Large Data Object

P: n/a
I'm using the example on the following page for selecting and fetching
a large data object. <http://publib.boulder.ibm.com/infocenter/db2luw/
v9/index.jsp?topic=/com.ibm.db2.udb.apdv.php.doc/doc/t0023504.htm>

Here's what I've tried:
$avatarFile = tempnam('', '');
$avatarSteam = fopen($avatarFile, 'wb');

$stmt = $dbh->prepare('SELECT user_avatar FROM users WHERE user_id =
29');
$stmt->execute();
$stmt->bindColumn('user_avatar', $avatarSteam, PDO::PARAM_LOB);
$stmt->fetch(PDO::FETCH_BOUND);

var_dump($coverSteam);
Ideally, $coverSteam should be a stream to a temporary file containing
the large data, but instead it's coming out as a string. And holding
the large data as a string in memory is exactly what I'm trying to
avoid. What am I doing wrong and how do I fix it? (I'm using SQLite,
in case it matters.)
Jun 2 '08 #1
Share this Question
Share on Google+
7 Replies


P: n/a
Fe**********@gmail.com wrote:
I'm using the example on the following page for selecting and fetching
a large data object. <http://publib.boulder.ibm.com/infocenter/db2luw/
v9/index.jsp?topic=/com.ibm.db2.udb.apdv.php.doc/doc/t0023504.htm>

Here's what I've tried:
$avatarFile = tempnam('', '');
$avatarSteam = fopen($avatarFile, 'wb');

$stmt = $dbh->prepare('SELECT user_avatar FROM users WHERE user_id =
29');
$stmt->execute();
$stmt->bindColumn('user_avatar', $avatarSteam, PDO::PARAM_LOB);
$stmt->fetch(PDO::FETCH_BOUND);

var_dump($coverSteam);
Ideally, $coverSteam should be a stream to a temporary file containing
the large data, but instead it's coming out as a string. And holding
the large data as a string in memory is exactly what I'm trying to
avoid. What am I doing wrong and how do I fix it? (I'm using SQLite,
in case it matters.)
Where does $coverStream come from? The first time you use it here is on
the var_dump() call.

--
==================
Remove the "x" from my email address
Jerry Stuckle
JDS Computer Training Corp.
js*******@attglobal.net
==================

Jun 2 '08 #2

P: n/a
On May 7, 3:15 pm, Jerry Stuckle <jstuck...@attglobal.netwrote:
FeelLikeA...@gmail.com wrote:
I'm using the example on the following page for selecting and fetching
a large data object. <http://publib.boulder.ibm.com/infocenter/db2luw/
v9/index.jsp?topic=/com.ibm.db2.udb.apdv.php.doc/doc/t0023504.htm>
Here's what I've tried:
$avatarFile = tempnam('', '');
$avatarSteam = fopen($avatarFile, 'wb');
$stmt = $dbh->prepare('SELECT user_avatar FROM users WHERE user_id =
29');
$stmt->execute();
$stmt->bindColumn('user_avatar', $avatarSteam, PDO::PARAM_LOB);
$stmt->fetch(PDO::FETCH_BOUND);
var_dump($coverSteam);
Ideally, $coverSteam should be a stream to a temporary file containing
the large data, but instead it's coming out as a string. And holding
the large data as a string in memory is exactly what I'm trying to
avoid. What am I doing wrong and how do I fix it? (I'm using SQLite,
in case it matters.)

Where does $coverStream come from? The first time you use it here is on
the var_dump() call.

--
==================
Remove the "x" from my email address
Jerry Stuckle
JDS Computer Training Corp.
jstuck...@attglobal.net
==================
Sorry. It was a mistake in the post. Shoulda been $avatarSteam.
Jun 2 '08 #3

P: n/a
On May 7, 3:15 pm, Jerry Stuckle <jstuck...@attglobal.netwrote:
FeelLikeA...@gmail.com wrote:
I'm using the example on the following page for selecting and fetching
a large data object. <http://publib.boulder.ibm.com/infocenter/db2luw/
v9/index.jsp?topic=/com.ibm.db2.udb.apdv.php.doc/doc/t0023504.htm>
Here's what I've tried:
$avatarFile = tempnam('', '');
$avatarSteam = fopen($avatarFile, 'wb');
$stmt = $dbh->prepare('SELECT user_avatar FROM users WHERE user_id =
29');
$stmt->execute();
$stmt->bindColumn('user_avatar', $avatarSteam, PDO::PARAM_LOB);
$stmt->fetch(PDO::FETCH_BOUND);
var_dump($coverSteam);
Ideally, $coverSteam should be a stream to a temporary file containing
the large data, but instead it's coming out as a string. And holding
the large data as a string in memory is exactly what I'm trying to
avoid. What am I doing wrong and how do I fix it? (I'm using SQLite,
in case it matters.)

Where does $coverStream come from? The first time you use it here is on
the var_dump() call.

--
==================
Remove the "x" from my email address
Jerry Stuckle
JDS Computer Training Corp.
jstuck...@attglobal.net
==================
Sorry. That was a mistake in the post. It should be $avatarSteam.
Jun 2 '08 #4

P: n/a
On Wed, 07 May 2008 20:43:45 +0200, <Fe**********@gmail.comwrote:
I'm using the example on the following page for selecting and fetching
a large data object. <http://publib.boulder.ibm.com/infocenter/db2luw/
v9/index.jsp?topic=/com.ibm.db2.udb.apdv.php.doc/doc/t0023504.htm>

Here's what I've tried:
$avatarFile = tempnam('', '');
$avatarSteam = fopen($avatarFile, 'wb');

$stmt = $dbh->prepare('SELECT user_avatar FROM users WHERE user_id =
29');
$stmt->execute();
$stmt->bindColumn('user_avatar', $avatarSteam, PDO::PARAM_LOB);
$stmt->fetch(PDO::FETCH_BOUND);

var_dump($coverSteam);

Ideally, $coverSteam should be a stream to a temporary file containing
the large data, but instead it's coming out as a string. And holding
the large data as a string in memory is exactly what I'm trying to
avoid. What am I doing wrong and how do I fix it? (I'm using SQLite,
in case it matters.)
I'll see if I can reproduce this tomorrow, in the mean while: a big report
that isn't yet solved seems to be filed:
http://bugs.php.net/bug.php?id=40913
--
Rik Wasmus
Jun 2 '08 #5

P: n/a
On Thu, 08 May 2008 03:26:24 +0200, Rik Wasmus
<lu************@hotmail.comwrote:
On Wed, 07 May 2008 20:43:45 +0200, <Fe**********@gmail.comwrote:
>I'm using the example on the following page for selecting and fetching
a large data object. <http://publib.boulder.ibm.com/infocenter/db2luw/
v9/index.jsp?topic=/com.ibm.db2.udb.apdv.php.doc/doc/t0023504.htm>

Here's what I've tried:
$avatarFile = tempnam('', '');
$avatarSteam = fopen($avatarFile, 'wb');

$stmt = $dbh->prepare('SELECT user_avatar FROM users WHERE user_id =
29');
$stmt->execute();
$stmt->bindColumn('user_avatar', $avatarSteam, PDO::PARAM_LOB);
$stmt->fetch(PDO::FETCH_BOUND);

var_dump($coverSteam);

Ideally, $coverSteam should be a stream to a temporary file containing
the large data, but instead it's coming out as a string. And holding
the large data as a string in memory is exactly what I'm trying to
avoid. What am I doing wrong and how do I fix it? (I'm using SQLite,
in case it matters.)

I'll see if I can reproduce this tomorrow, in the mean while: a big
report that isn't yet solved seems to be filed:
http://bugs.php.net/bug.php?id=40913
s/big/bug/

It's late.....
--
Rik Wasmus
Jun 2 '08 #6

P: n/a
Rik Wasmus wrote:
On Thu, 08 May 2008 03:26:24 +0200, Rik Wasmus
<lu************@hotmail.comwrote:
>On Wed, 07 May 2008 20:43:45 +0200, <Fe**********@gmail.comwrote:
>>I'm using the example on the following page for selecting and fetching
a large data object. <http://publib.boulder.ibm.com/infocenter/db2luw/
v9/index.jsp?topic=/com.ibm.db2.udb.apdv.php.doc/doc/t0023504.htm>

Here's what I've tried:
$avatarFile = tempnam('', '');
$avatarSteam = fopen($avatarFile, 'wb');

$stmt = $dbh->prepare('SELECT user_avatar FROM users WHERE user_id =
29');
$stmt->execute();
$stmt->bindColumn('user_avatar', $avatarSteam, PDO::PARAM_LOB);
$stmt->fetch(PDO::FETCH_BOUND);

var_dump($coverSteam);

Ideally, $coverSteam should be a stream to a temporary file containing
the large data, but instead it's coming out as a string. And holding
the large data as a string in memory is exactly what I'm trying to
avoid. What am I doing wrong and how do I fix it? (I'm using SQLite,
in case it matters.)

I'll see if I can reproduce this tomorrow, in the mean while: a big
report that isn't yet solved seems to be filed:
http://bugs.php.net/bug.php?id=40913

s/big/bug/

It's late.....
Hmmm, over a year old and just assigned? Doesn't seem to be a very high
priority with them. Or maybe it's really tough to fix.

--
==================
Remove the "x" from my email address
Jerry Stuckle
JDS Computer Training Corp.
js*******@attglobal.net
==================

Jun 2 '08 #7

P: n/a
On Thu, 08 May 2008 14:52:56 +0200, Jerry Stuckle
<js*******@attglobal.netwrote:
Rik Wasmus wrote:
>On Thu, 08 May 2008 03:26:24 +0200, Rik Wasmus
<lu************@hotmail.comwrote:
>>On Wed, 07 May 2008 20:43:45 +0200, <Fe**********@gmail.comwrote:

I'm using the example on the following page for selecting and fetching
a large data object. <http://publib.boulder.ibm.com/infocenter/db2luw/
v9/index.jsp?topic=/com.ibm.db2.udb.apdv.php.doc/doc/t0023504.htm>

Here's what I've tried:
$avatarFile = tempnam('', '');
$avatarSteam = fopen($avatarFile, 'wb');

$stmt = $dbh->prepare('SELECT user_avatar FROM users WHERE user_id =
29');
$stmt->execute();
$stmt->bindColumn('user_avatar', $avatarSteam, PDO::PARAM_LOB);
$stmt->fetch(PDO::FETCH_BOUND);

var_dump($coverSteam);

Ideally, $coverSteam should be a stream to a temporary file containing
the large data, but instead it's coming out as a string. And holding
the large data as a string in memory is exactly what I'm trying to
avoid. What am I doing wrong and how do I fix it? (I'm using SQLite,
in case it matters.)

I'll see if I can reproduce this tomorrow, in the mean while: a big
report that isn't yet solved seems to be filed:
http://bugs.php.net/bug.php?id=40913
s/big/bug/
It's late.....

Hmmm, over a year old and just assigned? Doesn't seem to be a very high
priority with them. Or maybe it's really tough to fix.
Indeed. Just verified it here, it still doesn't work in 5.2.4. A shame, I
was just going to use it in a project next week... It seems almost every
PDO driver has had this issue, however, for MySQL it's not fixed.

Perhaps the OP can abuse INTO DUMPFILE in MySQL if both webserver &
database are on the same machine.
--
Rik Wasmus
Jun 2 '08 #8

This discussion thread is closed

Replies have been disabled for this discussion.