|
php.net | support | documentation | report a bug | advanced search | search howto | statistics | random bug | login |
PatchesPull RequestsHistoryAllCommentsChangesGit/SVN commits
[2016-09-08 10:59 UTC] dorin dot marcoci at gmail dot com
-Status: Open
+Status: Closed
[2016-09-08 10:59 UTC] dorin dot marcoci at gmail dot com
|
|||||||||||||||||||||||||||
Copyright © 2001-2025 The PHP GroupAll rights reserved. |
Last updated: Sun Nov 30 18:00:01 2025 UTC |
Description: ------------ PDO Driver fails when updating a blob field with a large string content. Our test show SIGSEGV happens from about 92000 chars filled in blob parameter by $Statement->bindValue($Name, $Value); Some facts: - Error is raised in Execute, not in BindValue - Records in database are updated DB Field is declared as: Firebird 2.5.5 BLOB SUB_TYPE 1 SEGMENT SIZE 100 CHARACTER SET UTF8 COLLATE UTF8 Script is striped down from our code. Always reproducible. Test script: --------------- <?php $D = [ 'kind' => 'firebird', 'host' => '10.10.10.IP', 'port' => 3050, 'base' => 'database', 'charset' => 'utf8', 'user' => 'SYSDBA', 'password' => 'password here', 'options' => [] ]; $H = $D['kind'].':host='.$D['host'].';port='.$D['port'].';dbname='.$D['base'].';charset='.$D['charset']; $C = new \PDO($H, $D['user'], $D['password'], $D['options']); if (!$S = $C->prepare('update ta_table set description = :description where id = 370')) return false; $S->bindValue('description', str_repeat('a', 100000)); if (!$S->execute()) return false; return true; Actual result: -------------- [05-Sep-2016 19:33:32] WARNING: [pool www] child 6612 exited on signal 11 (SIGSEGV) after 0.444558 seconds from start