Bug #62998 [NEW]: pg_query_params() doesn't handle NULL

From: Date: Sun, 02 Sep 2012 14:46:16 +0000
Subject: Bug #62998 [NEW]: pg_query_params() doesn't handle NULL
Groups: php.bugs 
Request: Send a blank email to php-bugs+get-173121@lists.php.net to get a copy of this message
From:             php at richardneill dot org
Operating system: Linux
PHP version:      5.3.16
Package:          PostgreSQL related
Bug Type:         Bug
Bug description:pg_query_params() doesn't handle NULL

Description:
------------
pg_query_params($conn,$sql,$params)  is supposed to correctly handle
NULL->SQL_NULL. It doesn't do this (despite the documentation); instead it
breaks the query.

Documentation
"If parameters are used, they are referred to in the query string as $1,
$2, etc. params specifies the actual values of the parameters. A NULL value
in this array means the corresponding parameter is SQL NULL. "


Test script:
---------------
Here's a simple example:


$result = pg_query_params ($conn, 
   "select CASE WHEN NULL is $1 then 'it is null' ELSE 'it is not null'
END",
    array(NULL) );
echo pg_last_error($conn);
print_r (pg_fetch_assoc($result));

This query fails, because the parameter $1 is not actually passed as NULL,
instead it seems to be the empty string.

My SQL is definitely right:
 pg_query_params ($conn, 
 "select CASE WHEN NULL is NULL then 'it is null' ELSE 'it is not null'
END",
 array() );

works fine, to return the string "it is null".

Expected result:
----------------
It should be possible to pass SQL_NULL to the database in a parameter.


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



Thread (5 messages)

« previous php.bugs (#173121) next »