ID: 44791
Updated by: [EMAIL PROTECTED]
Reported By: php at benjaminschulz dot com
-Status: Open
+Status: Analyzed
Bug Type: PostgreSQL related
Operating System: osx
PHP Version: 5.3CVS-2008-04-21 (CVS)
New Comment:
The problem is due to the way the casting is done internally:
SEPARATE_ZVAL(tmp);
convert_to_string_ex(tmp);
if (Z_TYPE_PP(tmp) != IS_STRING) {
php_error_docref(NULL TSRMLS_CC, E_WARNING,"Error converting
parameter");
_php_pgsql_free_params(params, num_params);
RETURN_FALSE;
}
It could be improved by testing the variable type prior to convert.
However I'm not sure if it is desired or if it has some bad side effects
like BC breaks.
Previous Comments:
------------------------------------------------------------------------
[2008-04-21 09:14:38] php at benjaminschulz dot com
Description:
------------
Binding a boolean "false" to a statement doesn't work.
Reproduce code:
---------------
$result = pg_prepare($dbconn, "my_query", 'SELECT * FROM test WHERE
boolfield = $1');
$result = pg_execute($dbconn, "my_query", array(true)); // works
$result = pg_execute($dbconn, "my_query", array(false)); // triggers an
error
Expected result:
----------------
No error ;)
Actual result:
--------------
Warning: pg_execute(): Query failed: ERROR: invalid input syntax for
type boolean: "" in ...
------------------------------------------------------------------------
--
Edit this bug report at http://bugs.php.net/?id=44791&edit=1