ID:          42588
 Comment by:  s dot urbanovski at ac-nancy-metz dot fr
 Reported By: dhall at wustl dot edu
 Status:      Open
 Bug Type:    PDO related
 PHP Version: 5CVS-2007-09-07 (snap)
 New Comment:

Same problem on Debian Lenny (PHP 5.2.6-2).
I'm unable to insert LOB data if I'm using the utf-8 encoding (SET
CHARACTER SET utf8; ). Some caracters are converted to 0x3F.


Previous Comments:
------------------------------------------------------------------------

[2007-09-07 15:43:19] dhall at wustl dot edu

PS.
If you remove the SET CHARACTER SET UTF-8 stuff, it works.  I don't see
why that should screw up pdo sending in lobs though.

------------------------------------------------------------------------

[2007-09-07 15:29:46] dhall at wustl dot edu

Description:
------------
See Ubuntu Bug 137960
I have duplicated this compiling on Mac OS X with the latest CVS
snapshot, so I think its not a Debian/Ubuntu packaging bug.

Reproduce code:
---------------
<?php
$imagesize = getimagesize('dm color logo copy.gif');
$fp = fopen('dm color logo copy.gif', 'rb');

/**
 * On Linux/OS X, a 8262 byte image turns into 7966 bytes in the
database
 * On Windows, it is stored with the correct size.
 */
$db = new PDO('mysql:host=localhost;dbname=play', 'db_username',
'db_password', array( PDO::MYSQL_ATTR_INIT_COMMAND=>'SET CHARACTER SET
utf8;', PDO::MYSQL_ATTR_MAX_BUFFER_SIZE=>4194304 ) );
$prepared = $db->prepare('INSERT INTO `files` (`type`,`data`) VALUES
(:type, :data)');
$prepared->bindParam(':type',$imagesize['mime'], PDO::PARAM_STR, 50);
$prepared->bindParam(':data', $fp, PDO::PARAM_LOB);
$prepared->execute();

$id = $db->lastInsertId();

$prepared = $db->prepare('SELECT `type`, `data` FROM `files` WHERE
`fileid` = :fileid');
$prepared->bindParam(':fileid',$id, PDO::PARAM_INT);
$prepared->execute();
$prepared->bindColumn(1, $type, PDO::PARAM_STR, 256);
$prepared->bindColumn(2, $lob, PDO::PARAM_LOB);
$prepared->fetch(PDO::FETCH_BOUND);
header("Content-Type: $type");
echo $lob;
?>

Expected result:
----------------
properly output image as on
http://cowsandmilk.homeip.net/pdolob/pdolobtest.php

Actual result:
--------------
image missing bytes as on http://cowsandmilk.net/pdolob/pdolobtest.php
(goes from 8262 bytes to 7966 bytes)


------------------------------------------------------------------------


-- 
Edit this bug report at http://bugs.php.net/?id=42588&edit=1

Reply via email to