#44791 [Opn->Ana]: pg_execute() works with boolean params and "true" but not with "false"

From: 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

« previous php.bugs (#124401) next »