#44791 [Opn->Ana]: pg_execute() works with boolean params and "true" but not with "false"
| From: | pajoye@php.net | Date: | Mon, 21 Apr 2008 09:32:59 +0000 |
| Subject: | #44791 [Opn->Ana]: pg_execute() works with boolean params and "true" but not with "false" | ||
| References: | 1 | Groups: | php.bugs |
| Request: | Send a blank email to php-bugs+get-124401@lists.php.net to get a copy of this message | ||
ID: 44791
Updated by: pajoye@php.net
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