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

Reply via email to