bug38334.phpt 1.0 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344
  1. --TEST--
  2. Bug #38334: Proper data-type support for PDO_SQLITE
  3. --EXTENSIONS--
  4. pdo_sqlite
  5. --FILE--
  6. <?php
  7. $db = new PDO('sqlite::memory:');
  8. $db->exec('CREATE TABLE test (i INTEGER , f DOUBLE, s VARCHAR(255))');
  9. $db->exec('INSERT INTO test VALUES (42, 46.7, "test")');
  10. var_dump($db->query('SELECT * FROM test')->fetch(PDO::FETCH_ASSOC));
  11. // Check handling of integers larger than 32-bit.
  12. $db->exec('INSERT INTO test VALUES (10000000000, 0.0, "")');
  13. $i = $db->query('SELECT i FROM test WHERE f = 0.0')->fetchColumn(0);
  14. if (PHP_INT_SIZE >= 8) {
  15. var_dump($i === 10000000000);
  16. } else {
  17. var_dump($i === '10000000000');
  18. }
  19. // Check storing of strings into integer/float columns.
  20. $db->exec('INSERT INTO test VALUES ("test", "test", "x")');
  21. var_dump($db->query('SELECT * FROM test WHERE s = "x"')->fetch(PDO::FETCH_ASSOC));
  22. ?>
  23. --EXPECT--
  24. array(3) {
  25. ["i"]=>
  26. int(42)
  27. ["f"]=>
  28. float(46.7)
  29. ["s"]=>
  30. string(4) "test"
  31. }
  32. bool(true)
  33. array(3) {
  34. ["i"]=>
  35. string(4) "test"
  36. ["f"]=>
  37. string(4) "test"
  38. ["s"]=>
  39. string(1) "x"
  40. }