Bug #81586 [Com]: PDO OCI binds boolean false as NULL
Edit report at https://bugs.php.net/bug.php?id=81586&edit=1
ID: 81586
Comment by: janettabloomquist at gmail dot com
Reported by: morozov at tut dot by
Summary: PDO OCI binds boolean false as NULL
Status: Open
Type: Bug
Package: PDO OCI
Operating System: Linux
PHP Version: 8.0.12
Block user comment: N
Private report: N
New Comment:
PDO OCI binds boolean false as NULL handling of the PDO::PARAM_BOOL binding type which makes the
logic of binding boolean. When just working with the DBAL, you can simply use PDO::PARAM_INT or
"integer" as the bind type. When working with the ORM.
(https://www.caregiver-connect.org/)github.com
Previous Comments:
------------------------------------------------------------------------
[2022-12-13 09:00:25] Lawson525aria at gmail dot com
Hi,
I'm trying to insert a PHP boolean variable into a column defined as number. It works fine for
TRUE, but fails with ORA-01400 for FALSE.
Reason for using NUMBER(1) is for portability with other DB engines.
create table test (version varchar(10), obsolete number(1) not null);
(https://www.miocado.me/)github.com
------------------------------------------------------------------------
[2022-12-09 05:59:36] fariba dot shami326 at gmail dot com
A really good post, very thankful and hopeful that you will write many more posts like this one.
(https://www.myacpny.me/)php.net
------------------------------------------------------------------------
[2022-12-01 05:07:19] farid dot jamili4118 at gmail dot com
A really good post, very thankful and hopeful that you will write many more posts like this one.
(https://www.rapidfs.online/)php.net
------------------------------------------------------------------------
[2021-11-02 17:50:38] morozov at tut dot by
Description:
------------
It looks like the extension doesn't implement any special handling of the PDO::PARAM_BOOL
binding type which makes the logic of binding boolean values inconsistent with the rest of the PDO
extensions.
Test script:
---------------
$conn = new
PDO('oci:dbname=(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=localhost)(PORT=1521))(CONNECT_DATA=(SID=XE)))',
'system', 'oracle');
$stmt = $conn->prepare('SELECT ?, ? FROM DUAL');
$stmt->bindValue(1, true, PDO::PARAM_BOOL);
$stmt->bindValue(2, false, PDO::PARAM_BOOL);
$stmt->execute();
Expected result:
----------------
array(2) {
[0] =>
string(1) "1"
[1] =>
string(1) "0"
}
Actual result:
--------------
array(2) {
[0] =>
string(1) "1"
[1] =>
NULL
}
------------------------------------------------------------------------
--
Edit this bug report at https://bugs.php.net/bug.php?id=81586&edit=1
Thread (6 messages)