ID: 38015
User updated by: sunaoka+bugs dot php dot net at gmail dot com
Reported By: sunaoka+bugs dot php dot net at gmail dot com
-Status: Feedback
+Status: Open
Bug Type: PDO related
Operating System: Solaris
PHP Version: 5.1.4
New Comment:
Thank you for your comment. But, I do not understand why the result
doesn't become `int(10485760)'.
I load `FileData' only 1MB.
I am using php5.2-200607060030.
Reproduce code:
---------------
try {
$db = new PDO('mysql:host=localhost;dbname=test', 'user', 'pass');
$db->setAttribute(PDO::MYSQL_ATTR_MAX_BUFFER_SIZE, 1024 * 1024 *
10);
$sql = 'SELECT LENGTH(FileData) FROM FileInfo WHERE Id = ?';
$stmt = $db->prepare($sql);
$stmt->execute(array(1));
$result = $stmt->fetch();
$stmt->closeCursor();
echo 'LENGTH(FileData): ', $result[0], "\n";
$sql = 'SELECT FileData FROM FileInfo WHERE Id = ?';
$stmt = $db->prepare($sql);
$stmt->execute(array(1));
$stmt->bindColumn('FileData', $lob, PDO::PARAM_LOB);
$result = $stmt->fetch(PDO::FETCH_BOUND);
file_put_contents('/tmp/foo', $lob);
echo "filesize('/tmp/foo'): ", filesize('/tmp/foo'), "\n";
} catch (PDOException $exception) {
echo $exception->getMessage(), "\n";
}
Expected result:
----------------
LENGTH(FileData): 6971569
filesize('/tmp/foo'): 1048576
Previous Comments:
------------------------------------------------------------------------
[2006-07-06 20:12:51] [EMAIL PROTECTED]
Expected result:
----------------
int(1048576)
bool(true)
int(1048576)
Right, this is the expected and ACTUAL result.
I don't see any problems there.
------------------------------------------------------------------------
[2006-07-06 08:41:22] sunaoka+bugs dot php dot net at gmail dot com
Thank you for your comment. I try using CVS snapshot, but I have
another problem.
So, I can set PDO_MYSQL_ATTR_MAX_BUFFER_SIZE, but it can not set the
value.
Reproduce code:
---------------
$db = new PDO('mysql:host=localhost;dbname=test', 'user', 'pass');
var_dump($db->getAttribute(PDO::MYSQL_ATTR_MAX_BUFFER_SIZE));
var_dump($db->setAttribute(PDO::MYSQL_ATTR_MAX_BUFFER_SIZE, 1024 * 1024
* 10));
var_dump($db->getAttribute(PDO::MYSQL_ATTR_MAX_BUFFER_SIZE));
Expected result:
----------------
int(1048576)
bool(true)
int(1048576)
------------------------------------------------------------------------
[2006-07-05 17:32:50] [EMAIL PROTECTED]
Please try using this CVS snapshot:
http://snaps.php.net/php5.2-latest.tar.gz
For Windows:
http://snaps.php.net/win32/php5.2-win32-latest.zip
------------------------------------------------------------------------
[2006-07-05 13:28:41] sunaoka+bugs dot php dot net at gmail dot com
Description:
------------
I'm using pdo_mysql client library 4.1.20.
I need treat the data of 1MB or more.
But I can not set PDO_MYSQL_ATTR_MAX_BUFFER_SIZE.
Reproduce code:
---------------
$db = new PDO('mysql:host=localhost;dbname=test', 'user', 'pass');
var_dump($db->setAttribute(PDO::MYSQL_ATTR_MAX_BUFFER_SIZE, 1024 * 1024
* 10));
Expected result:
----------------
bool(false)
------------------------------------------------------------------------
--
Edit this bug report at http://bugs.php.net/?id=38015&edit=1