sqlite3_bind_bug68849.phpt 1.2 KB

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