Bug #81586 [Com]: PDO OCI binds boolean false as NULL

From: Date: Wed, 28 Jun 2023 12:08:54 +0000
Subject: Bug #81586 [Com]: PDO OCI binds boolean false as NULL
References: 1  Groups: php.bugs 
Request: Send a blank email to php-bugs+get-244830@lists.php.net to get a copy of this message
Edit report at https://bugs.php.net/bug.php?id=81586&edit=1 ID: 81586 Comment by: arthurfordb74708 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: A really good post, very useful and helpful. Previous Comments: ------------------------------------------------------------------------ [2022-12-30 11:56:56] janettabloomquist at gmail dot com 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 ------------------------------------------------------------------------ [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

« previous php.bugs (#244830) next »