sqlite3_bind_bug68849.phpt 1.3 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071
  1. --TEST--
  2. Bug #68849 bindValue is not using the right data type
  3. --SKIPIF--
  4. <?php require_once(__DIR__ . '/skipif.inc'); ?>
  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. ==DONE==
  31. --EXPECT--
  32. array(3) {
  33. ["a"]=>
  34. int(1)
  35. ["b"]=>
  36. string(5) "hello"
  37. ["c"]=>
  38. float(3.14)
  39. }
  40. array(3) {
  41. ["a"]=>
  42. int(1)
  43. ["b"]=>
  44. string(5) "hello"
  45. ["c"]=>
  46. float(3.14)
  47. }
  48. array(3) {
  49. ["a"]=>
  50. int(0)
  51. ["b"]=>
  52. string(2) "42"
  53. ["c"]=>
  54. float(0.42)
  55. }
  56. array(3) {
  57. ["a"]=>
  58. int(3)
  59. ["b"]=>
  60. string(5) "world"
  61. ["c"]=>
  62. float(3.15)
  63. }
  64. ==DONE==