bug_63916-2.phpt 790 B

123456789101112131415161718192021222324252627
  1. --TEST--
  2. Bug #63916 PDO::PARAM_INT casts to 32bit int internally even on 64bit builds in pdo_sqlite
  3. --SKIPIF--
  4. <?php
  5. if (!extension_loaded('pdo_sqlite')) die('skip pdo_sqlite extension not loaded');
  6. if (PHP_INT_SIZE > 4) die('skip 32-bit only');
  7. ?>
  8. --FILE--
  9. <?php
  10. $num = PHP_INT_MAX; // 32 bits
  11. $conn = new PDO('sqlite::memory:');
  12. $conn->query('CREATE TABLE users (id INTEGER NOT NULL, num INTEGER NOT NULL, PRIMARY KEY(id))');
  13. $stmt = $conn->prepare('insert into users (id, num) values (:id, :num)');
  14. $stmt->bindValue(':id', 1, PDO::PARAM_INT);
  15. $stmt->bindValue(':num', $num, PDO::PARAM_INT);
  16. $stmt->execute();
  17. $stmt = $conn->query('SELECT num FROM users');
  18. $result = $stmt->fetchAll(PDO::FETCH_COLUMN);
  19. var_dump($num,$result[0]);
  20. ?>
  21. --EXPECT--
  22. int(2147483647)
  23. string(10) "2147483647"