We need to ensure that a zval IS_DOUBLE before we access it as such.
In this case we apply common type juggling to do so.
- PDO_Firebird:
. Fixed bug #76488 (Memory leak when fetching a BLOB field). (Simonov Denis)
+- SQLite3:
+ . Fixed #76665 (SQLite3Stmt::bindValue() with SQLITE3_FLOAT doesn't juggle).
+ (cmb)
+
- Standard:
. Fixed bug #68553 (array_column: null values in $index_key become incrementing
keys in result). (Laruence)
break;
case SQLITE_FLOAT:
- /* convert_to_double(parameter);*/
+ convert_to_double(parameter);
sqlite3_bind_double(stmt_obj->stmt, param->param_number, Z_DVAL_P(parameter));
break;
--- /dev/null
+--TEST--
+Bug #76665 (SQLite3Stmt::bindValue() with SQLITE3_FLOAT doesn't juggle)
+--SKIPIF--
+<?php
+if (!extension_loaded('sqlite3')) die('skip sqlite3 extension not available');
+?>
+--FILE--
+<?php
+$db = new SQLite3(':memory:');
+$db->exec("CREATE TABLE foo (bar REAL)");
+$stmt = $db->prepare("INSERT INTO foo VALUES (:bar)");
+$stmt->bindValue(':bar', 17, SQLITE3_FLOAT);
+$stmt->execute();
+var_dump($db->querySingle("SELECT bar FROM foo LIMIT 1"));
+?>
+===DONE===
+--EXPECT--
+float(17)
+===DONE===