bug_63916.phpt 736 B

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