bugs.php.net

PHP :: Bug #26777 :: Extension shouldn't check whether a parameter should be NULL

  • ️Sat Jan 03 2004
Bug #26777 Extension shouldn't check whether a parameter should be NULL
Submitted: 2004-01-03 09:35 UTC Modified: 2004-02-15 13:28 UTC
From: al at forest dot akadem dot ru Assigned: abies (profile)
Status: Not a bug Package: InterBase related
PHP Version: 4CVS, 5CVS OS: *
Private report: No CVE-ID: None

 [2004-01-03 09:35 UTC] al at forest dot akadem dot ru

Description:
------------
Having Windows 2000 SP4, 
PHP 4.3.4, php_interbase latest checked from CVS (Revision 1.91.2.26). Firebird SS 1.0.3
Having a table in db (dialect 3):
CREATE TABLE T_TEST (
    F1  TIMESTAMP NOT NULL,
    F2  INTEGER
);
and a trigger associated with it:
CREATE TRIGGER T_TEST_BI0 FOR T_TEST
ACTIVE BEFORE INSERT POSITION 0
AS
begin
  if (new.f1 IS null) then
    new.f1 = current_timestamp;
end
This mean that no record will be inserted with F1 set to NULL. Having code reproduced below I get a message:
Warning: ibase_query(): Parameter 90206904 must have a value in c:\g2\htdocs\ibase_not_null.php on line 7
The problem seems to lie around lines 1199-1202 in interbase.c
Reproduce code:
---------------
<?php
$G2db = ibase_connect( '/path/to/db', 
		       'user', 'passw', 
		       'WIN1251', 0, 3, 'role');
$G2tr = ibase_trans(IBASE_NOWAIT, $G2db);
$qry = ibase_query($G2tr, 'insert into t_test (f1, f2) values (?, ?)', NULL, '33');
ibase_commit($G2tr);
ibase_close($G2db);
?>
Expected result:
----------------
PHP shouldn't complain at all.

Patches

Pull Requests

History

AllCommentsChangesGit/SVN commitsRelated reports

 [2004-01-06 18:26 UTC] sniper@php.net

Assigned to Ard who touched this part the last time.

 [2004-01-07 04:41 UTC] abies@php.net

This bug has been fixed in CVS.
Snapshots of the sources are packaged every three hours; this change
will be in the next snapshot. You can grab the snapshot at
http://snaps.php.net/.
Thank you for the report, and for helping us make PHP better.

 [2004-02-15 13:28 UTC] abies@php.net

Reverted in CVS HEAD:
The client API requires every non-null field to have a value, even if a trigger can provide a value as well. [The NULL flag of a NOT NULL field is not even tested by the client lib, causing PHP to crash if you try to insert null into it]
Please note that this restriction is imposed by the client API, not by PHP.