From:             [EMAIL PROTECTED]
Operating system: Windows 2000
PHP version:      4.0.5
PHP Bug Type:     InterBase related
Bug description:  Bug with ibase_execute()

Environment:
 - Windows 2000 Server
 - Apache v1.3.20 (binaries from www.apache.org)
 - PHP v4.0.5 (binaries from www.php.net)
 - InterBase v6.0.0.627 (binaries from www.borland.com)

1. Create very simple database:
-----------------------------------------------------------------
CREATE DATABASE 'c:\db\test.gdb'
USER 'user' PASSWORD 'password';

CREATE TABLE TABLE_1 (
    ID_1 INTEGER NOT NULL);

CREATE TABLE TABLE_2 (
    ID_2 INTEGER NOT NULL,
    FK INTEGER);

ALTER TABLE TABLE_1 ADD CONSTRAINT PK_1 PRIMARY KEY (ID_1);
ALTER TABLE TABLE_2 ADD CONSTRAINT PK_2 PRIMARY KEY (ID_2);
ALTER TABLE TABLE_2 ADD CONSTRAINT FK_2_1 FOREIGN KEY (FK) REFERENCES TABLE_1 (ID_1);

COMMIT WORK;
-----------------------------------------------------------------

2. Create very simple PHP script:
-----------------------------------------------------------------
<?php
$ib = ibase_connect('c:\db\test.gdb','user','password');

$query = ibase_prepare($ib,'insert into TABLE_2(ID_2, FK) values (?, ?)');
$rs = ibase_execute($query,1,null);

ibase_close($ib);
?>
-----------------------------------------------------------------

3. Run it and look at the following error:
-----------------------------------------------------------------
Warning: InterBase: violation of FOREIGN KEY constraint "FK_2_1" on table "TABLE_2" in 
test.php on line 5
-----------------------------------------------------------------

Note, that if we'll insert non-NULL value into TABLE_2.FK, then all will work fine.

4. Rewire our PHP script slightly:
-----------------------------------------------------------------
<?php
$ib = ibase_connect('c:\db\test.gdb','user','password');

$query = ibase_query($ib,"insert into TABLE_2(ID_2, FK) values (1,null)");

ibase_close($ib);
?>
-----------------------------------------------------------------

5. Run it and note, that all works fine!

 So, there is a serious bug into ibase_execute() function, which prevents first 
version of
PHP script from working properly.
 


-- 
Edit Bug report at: http://bugs.php.net/?id=11819&edit=1



-- 
PHP Development Mailing List <http://www.php.net/>
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]
To contact the list administrators, e-mail: [EMAIL PROTECTED]

Reply via email to