Bug #40913 [Csd->ReO]: PDO::PARAM_LOB does not bind to a stream for fetching a BLOB
From: johannes@php.net Date: Wed, 07 Nov 2012 12:15:02 +0000 Subject: Bug #40913 [Csd->ReO]: PDO::PARAM_LOB does not bind to a stream for fetching a BLOB References: 1 Groups: php.bugs Request: Send a blank email to php-bugs+get-174550@lists.php.net to get a copy of this message
Edit report at https://bugs.php.net/bug.php?id=40913&edit=1
ID: 40913
Updated by: johannes@php.net
Reported by: dennis at inmarket dot lviv dot ua
Summary: PDO::PARAM_LOB does not bind to a stream for
fetching a BLOB
-Status: Closed
+Status: Re-Opened
Type: Bug
Package: PDO related
Operating System: Win XP
PHP Version: 5.2.6
Assigned To: mysql
Block user comment: N
Private report: N
New Comment:
The implementation for this is broken in PDO core. For PGSQL there is a workaround documented:
Since information about the columns is not always
available to PDO until the statement is executed,
portable applications should call this function after
PDOStatement::execute().
However, to be able to bind a LOB column as a stream
when using the PgSQL driver, applications should call
this method before calling PDOStatement::execute(),
otherwise the large object OID will be returned as an integer.
http://www.php.net/manual/en/pdostatement.bindcolumn.php
This works neither works with sqlite nor mysql drivers. After research I assume it won't work
with other drivers either. The LOB-handling happens in the param_hook for PDO_PARAM_EVT_EXEC_PRE.
But this event only happens if there are bound parameters during execute.
But result columns are bound after execute ...
The support for this feature has do be redesigned in PDO core ... as MySQL has no native stream
support I don't support adding a hack for this.
Previous Comments:
------------------------------------------------------------------------
[2012-11-07 08:55:18] vicrry at yahoo dot com dot hk
As of PHP 5.3.15, this bug still exists.
------------------------------------------------------------------------
[2012-08-04 12:40:50] david dot palella at gmail dot com
The problem is still present with PHP v. 5.3.10 and Ubuntu 12.10
------------------------------------------------------------------------
[2011-10-20 09:48:17] oridan82 at gmail dot com
PHP 5.3.5
PARAM_LOB is returning a string instead of a stream.
Code:
-----
$stmt = $conn->prepare($qry);
$stmt->bindValue(1, $_GET['id']);
$stmt->bindValue(2, $_GET['aid']);
$stmt->execute();
$stmt->bindColumn(4, $mimeType, PDO::PARAM_STR, 256);
$stmt->bindColumn(6, $lob, PDO::PARAM_LOB);
$stmt->fetch(PDO::FETCH_BOUND);
echo gettype($lob);
Expected Result:
----------------
resource
Actual Result:
--------------
string
------------------------------------------------------------------------
[2011-01-04 13:21:09] uw@php.net
See last comment, works with 5.3.4
------------------------------------------------------------------------
[2010-12-27 01:02:32] php at paloch dot net
Seems to be fixed in 5.3.4 final. I was struggling with this issue (and PHP 5.2.16) all evening
before finding this post. I tried installing PHP 5.3.4 and voila, problem solved.
------------------------------------------------------------------------
The remainder of the comments for this report are too long. To view
the rest of the comments, please view the bug report online at
https://bugs.php.net/bug.php?id=40913
--
Edit this bug report at https://bugs.php.net/bug.php?id=40913&edit=1
Thread (39 messages)
- #40913 [Opn->Ctl]: PDO::PARAM_LOB does not bind to a stream for fetching a BLOB
- #40913 [Ctl->Asn]: PDO::PARAM_LOB does not bind to a stream for fetching a BLOB
- #40913 [Com]: PDO::PARAM_LOB does not bind to a stream for fetching a BLOB
- #40913 [Com]: PDO::PARAM_LOB does not bind to a stream for fetching a BLOB
- #40913 [Com]: PDO::PARAM_LOB does not bind to a stream for fetching a BLOB
- #40913 [Com]: PDO::PARAM_LOB does not bind to a stream for fetching a BLOB
- #40913 [Com]: PDO::PARAM_LOB does not bind to a stream for fetching a BLOB
- #40913 [Asn->Fbk]: PDO::PARAM_LOB does not bind to a stream for fetching a BLOB
- #40913 [Com]: PDO::PARAM_LOB does not bind to a stream for fetching a BLOB
- #40913 [Com]: PDO::PARAM_LOB does not bind to a stream for fetching a BLOB
- #40913 [Com]: PDO::PARAM_LOB does not bind to a stream for fetching a BLOB
- #40913 [NoF->Ver]: PDO::PARAM_LOB does not bind to a stream for fetching a BLOB
- #40913 [Com]: PDO::PARAM_LOB does not bind to a stream for fetching a BLOB
- Bug #40913 [Com]: PDO::PARAM_LOB does not bind to a stream for fetching a BLOB
- Bug #40913 [Com]: PDO::PARAM_LOB does not bind to a stream for fetching a BLOB
- Bug #40913 [Com]: PDO::PARAM_LOB does not bind to a stream for fetching a BLOB
- Bug #40913 [Com]: PDO::PARAM_LOB does not bind to a stream for fetching a BLOB
- Bug #40913 [Ver->Fbk]: PDO::PARAM_LOB does not bind to a stream for fetching a BLOB
- Bug #40913 [Com]: PDO::PARAM_LOB does not bind to a stream for fetching a BLOB
- Bug #40913 [Fbk->Csd]: PDO::PARAM_LOB does not bind to a stream for fetching a BLOB
- Bug #40913 [Com]: PDO::PARAM_LOB does not bind to a stream for fetching a BLOB
- Bug #40913 [Com]: PDO::PARAM_LOB does not bind to a stream for fetching a BLOB
- Bug #40913 [Com]: PDO::PARAM_LOB does not bind to a stream for fetching a BLOB
- Bug #40913 [Csd->ReO]: PDO::PARAM_LOB does not bind to a stream for fetching a BLOB
- Bug #40913 [Com]: PDO::PARAM_LOB does not bind to a stream for fetching a BLOB
- Bug #40913 [Com]: PDO_MYSQL: PDO::PARAM_LOB does not bind to a stream for fetching a BLOB
- Bug #40913 [Com]: PDO_MYSQL: PDO::PARAM_LOB does not bind to a stream for fetching a BLOB
- Bug #40913 [Com]: PDO_MYSQL: PDO::PARAM_LOB does not bind to a stream for fetching a BLOB
- Bug #40913 [Com]: PDO_MYSQL: PDO::PARAM_LOB does not bind to a stream for fetching a BLOB
- Bug #40913 [Com]: PDO_MYSQL: PDO::PARAM_LOB does not bind to a stream for fetching a BLOB
- Bug #40913 [Com]: PDO_MYSQL: PDO::PARAM_LOB does not bind to a stream for fetching a BLOB
- Bug #40913 [Com]: PDO_MYSQL: PDO::PARAM_LOB does not bind to a stream for fetching a BLOB
- Bug #40913 [Com]: PDO_MYSQL: PDO::PARAM_LOB does not bind to a stream for fetching a BLOB
- Bug #40913 [Com]: PDO_MYSQL: PDO::PARAM_LOB does not bind to a stream for fetching a BLOB
- Bug #40913 [Com]: PDO_MYSQL: PDO::PARAM_LOB does not bind to a stream for fetching a BLOB
- Bug #40913 [Com]: PDO_MYSQL: PDO::PARAM_LOB does not bind to a stream for fetching a BLOB
- Bug #40913 [ReO->Asn]: PDO_MYSQL: PDO::PARAM_LOB does not bind to a stream for fetching a BLOB
- Bug #40913 [Asn->Csd]: PDO_MYSQL: PDO::PARAM_LOB does not bind to a stream for fetching a BLOB
| « previous | php.bugs (#174550) | next » |
|---|