1--TEST--
2Bug #68849 bindValue is not using the right data type
3--SKIPIF--
4<?php require_once(__DIR__ . '/skipif.inc'); ?>
5--FILE--
6<?php
7
8$db = new SQLite3(':memory:');
9
10$db->exec("CREATE TABLE test (a INTEGER, b TEXT, c REAL);" .
11	    "INSERT INTO test VALUES (1, 'hello', 3.14);" .
12	    "INSERT INTO test VALUES (3, 'world', 3.15);" .
13	    "INSERT INTO test VALUES (0, '42', 0.42);"
14);
15
16$s = $db->prepare('SELECT * FROM test WHERE (a+2) = ?;');
17$s->bindValue(1, 3);
18$r = $s->execute();
19var_dump($r->fetchArray(SQLITE3_ASSOC));
20
21$s = $db->prepare('SELECT * FROM test WHERE a = ?;');
22$s->bindValue(1, true);
23$r = $s->execute();
24var_dump($r->fetchArray(SQLITE3_ASSOC));
25
26$s = $db->prepare('SELECT * FROM test WHERE a = ?;');
27$s->bindValue(1, false);
28$r = $s->execute();
29var_dump($r->fetchArray(SQLITE3_ASSOC));
30
31$s = $db->prepare('SELECT * FROM test WHERE c = ?;');
32$s->bindValue(1, 3.15);
33$r = $s->execute();
34var_dump($r->fetchArray(SQLITE3_ASSOC));
35
36?>
37==DONE==
38--EXPECTF--
39array(3) {
40  ["a"]=>
41  int(1)
42  ["b"]=>
43  string(5) "hello"
44  ["c"]=>
45  float(3.14)
46}
47array(3) {
48  ["a"]=>
49  int(1)
50  ["b"]=>
51  string(5) "hello"
52  ["c"]=>
53  float(3.14)
54}
55array(3) {
56  ["a"]=>
57  int(0)
58  ["b"]=>
59  string(2) "42"
60  ["c"]=>
61  float(0.42)
62}
63array(3) {
64  ["a"]=>
65  int(3)
66  ["b"]=>
67  string(5) "world"
68  ["c"]=>
69  float(3.15)
70}
71==DONE==
72