From:             symphony dot group at yahoo dot com
Operating system: Irrelevant
PHP version:      5.2.12
PHP Bug Type:     PDO related
Bug description:  ORA-03131: an invalid buffer was provided for the next 
piece(Same as Bug#39820)

Description:
------------
When binding out variables, you have to specify the data type and length
manually with PDO_OCI.

If not you receive an oracle error:

ORA-03131: an invalid buffer was provided for the next piece

This bug exists in both PHP 5.2.12 and 5.3.1

Reproduce code:
---------------
the following simple code easily re-produces the bug:

try {
        $dbConn = new PDO('oci:dbname=.....);
        $dbConn->setAttribute(PDO::ATTR_ERRMODE,PDO::ERRMODE_EXCEPTION);
        $sql = $dbConn->prepare("
                        BEGIN
                                SELECT  username
                                INTO    :chkId
                                FROM    USERS
                                WHERE   username = 'fred';
                        END;
                        ");
        $sql->bindParam('chkId', $chkId);
        $sql->execute();
        var_dump($chkId);
} catch (Exception $e) {
        var_dump($e);
}

obviously I've censored our connection info.

as the other user mentioned in bug #39820 if I alter the bindParam to:

$sql->bindParam('chkId', $chkId, PDO::PARAM_STR, 10);

it works. however even missing off the variable length causes a error

Expected result:
----------------
string ('fred');

Actual result:
--------------
object(PDOException)#3 (8) {
  ["message":protected]=>
  string(173) "SQLSTATE[HY000]: General error: 3131 OCIStmtExecute:
ORA-03131: an invalid buffer was provided for the next piece
 (....../php-5.3.1/ext/pdo_oci/oci_statement.c:146)"
  ["string":"Exception":private]=>
  string(0) ""
  ["code":protected]=>
  string(5) "HY000"
  ["file":protected]=>
  string(20) "/root/pdoOciTest.php"
  ["line":protected]=>
  int(14)
  ["trace":"Exception":private]=>
  array(1) {
    [0]=>
    array(6) {
      ["file"]=>
      string(20) "/root/pdoOciTest.php"
      ["line"]=>
      int(14)
      ["function"]=>
      string(7) "execute"
      ["class"]=>
      string(12) "PDOStatement"
      ["type"]=>
      string(2) "->"
      ["args"]=>
      array(0) {
      }
    }
  }
  ["previous":"Exception":private]=>
  NULL
  ["errorInfo"]=>
  array(3) {
    [0]=>
    string(5) "HY000"
    [1]=>
    int(3131)
    [2]=>
    string(136) "OCIStmtExecute: ORA-03131: an invalid buffer was provided
for the next piece
 (...../php-5.3.1/ext/pdo_oci/oci_statement.c:146)"
  }
}

-- 
Edit bug report at http://bugs.php.net/?id=50906&edit=1
-- 
Try a snapshot (PHP 5.2):            
http://bugs.php.net/fix.php?id=50906&r=trysnapshot52
Try a snapshot (PHP 5.3):            
http://bugs.php.net/fix.php?id=50906&r=trysnapshot53
Try a snapshot (PHP 6.0):            
http://bugs.php.net/fix.php?id=50906&r=trysnapshot60
Fixed in SVN:                        
http://bugs.php.net/fix.php?id=50906&r=fixed
Fixed in SVN and need be documented: 
http://bugs.php.net/fix.php?id=50906&r=needdocs
Fixed in release:                    
http://bugs.php.net/fix.php?id=50906&r=alreadyfixed
Need backtrace:                      
http://bugs.php.net/fix.php?id=50906&r=needtrace
Need Reproduce Script:               
http://bugs.php.net/fix.php?id=50906&r=needscript
Try newer version:                   
http://bugs.php.net/fix.php?id=50906&r=oldversion
Not developer issue:                 
http://bugs.php.net/fix.php?id=50906&r=support
Expected behavior:                   
http://bugs.php.net/fix.php?id=50906&r=notwrong
Not enough info:                     
http://bugs.php.net/fix.php?id=50906&r=notenoughinfo
Submitted twice:                     
http://bugs.php.net/fix.php?id=50906&r=submittedtwice
register_globals:                    
http://bugs.php.net/fix.php?id=50906&r=globals
PHP 4 support discontinued:          http://bugs.php.net/fix.php?id=50906&r=php4
Daylight Savings:                    http://bugs.php.net/fix.php?id=50906&r=dst
IIS Stability:                       
http://bugs.php.net/fix.php?id=50906&r=isapi
Install GNU Sed:                     
http://bugs.php.net/fix.php?id=50906&r=gnused
Floating point limitations:          
http://bugs.php.net/fix.php?id=50906&r=float
No Zend Extensions:                  
http://bugs.php.net/fix.php?id=50906&r=nozend
MySQL Configuration Error:           
http://bugs.php.net/fix.php?id=50906&r=mysqlcfg

Reply via email to