ID: 32395
Updated by: [EMAIL PROTECTED]
Reported By: treehousetim at gmail dot com
-Status: Open
+Status: Closed
Bug Type: Documentation problem
Operating System: *
PHP Version: 5CVS, 4CVS (2005-03-24)
New Comment:
This bug has been fixed in the documentation's XML sources. Since the
online and downloadable versions of the documentation need some time
to get updated, we would like to ask you to be a bit patient.
Thank you for the report, and for helping us make our documentation
better.
"Elements of this array will be converted to strings by calling this
function."
Previous Comments:
------------------------------------------------------------------------
[2005-12-25 17:41:06] [EMAIL PROTECTED]
It has to change the input array, because it
should convert all the values in strings without separating them to be
able to get returned values from stored proc.
Needs documenting.
------------------------------------------------------------------------
[2005-03-21 23:04:36] treehousetim at gmail dot com
More specifically, all entries in the array are changed to string
types.
here is more data as requested using var_dump instead of print_r.
BEFORE:
array(3) {
[0]=>
int(44)
[1]=>
NULL
[2]=>
NULL
}
AFTER:
array(3) {
[0]=>
string(2) "44"
[1]=>
string(0) ""
[2]=>
string(0) ""
}
------------------------------------------------------------------------
[2005-03-21 22:45:37] [EMAIL PROTECTED]
Please change print_r -> var_dump to get more detailed information out
of the $paramList variable.
------------------------------------------------------------------------
[2005-03-21 18:38:28] treehousetim at gmail dot com
Description:
------------
Calling odbc_execute modifies the input paramList array.
This happens even when I try to make a copy of the array before passing
it to odbc_execute.
Specifically, null parameters are changed to zero length strings.
Reproduce code:
---------------
<?php
function x( $query, $paramList )
{
$result = odbc_execute( $query, $paramList );
$paramList['timg'] = "Tim Gallagher";
}
// change the server and database below to the correct values for
your setup
$connection = 'DRIVER={SQL
Server};SERVER=server;DATABASE=database';
$handle = odbc_connect( $connection, '', '' );
$query = odbc_prepare( $handle, "INSERT INTO TEST
(ID,CHECK_LONG,CHECK_VARCHAR) VALUES (?, ?, ? )" );
$paramList[0] = 44;
$paramList[1] = null;
$paramList[2] = null;
echo gettype($paramList[2]) . "\n"; // echos NULL
x( $query, $paramList );
echo gettype($paramList[2]) . "\n"; // echos string
print_r( $paramList )
?>
Expected result:
----------------
NULL
string
Array
(
[0] => 44
[1] =>
[2] =>
)
Actual result:
--------------
NULL
NULL
Array
(
[0] => 44
[1] =>
[2] =>
)
------------------------------------------------------------------------
--
Edit this bug report at http://bugs.php.net/?id=32395&edit=1