bug68298.phpt 1.0 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849
  1. --TEST--
  2. Bug #68298 (OCI int overflow)
  3. --EXTENSIONS--
  4. oci8
  5. --SKIPIF--
  6. <?php
  7. if (PHP_INT_SIZE != 8) die("skip this test is for 64bit platforms only");
  8. ?>
  9. --FILE--
  10. <?php
  11. require(__DIR__.'/connect.inc');
  12. $stmtarray = array(
  13. "DROP TABLE BUG68298",
  14. "CREATE TABLE BUG68298 (COL1 NUMBER(20))"
  15. );
  16. oci8_test_sql_execute($c, $stmtarray);
  17. $s = oci_parse($c, "INSERT INTO BUG68298 VALUES (:INTVALUE)");
  18. $intvalue = 1152921504606846975;
  19. oci_bind_by_name($s, ":INTVALUE", $intvalue, -1, SQLT_INT);
  20. oci_execute($s);
  21. $s = oci_parse($c, "INSERT INTO BUG68298 VALUES (:INTVALUE)");
  22. $intvalue = -1152921504606846975;
  23. oci_bind_by_name($s, ":INTVALUE", $intvalue, -1, SQLT_INT);
  24. oci_execute($s);
  25. $s = oci_parse($c, "SELECT COL1 FROM BUG68298");
  26. oci_execute($s);
  27. oci_fetch_all($s, $r);
  28. var_dump($r);
  29. $stmtarray = array("DROP TABLE BUG68298");
  30. oci8_test_sql_execute($c, $stmtarray);
  31. ?>
  32. --EXPECT--
  33. array(1) {
  34. ["COL1"]=>
  35. array(2) {
  36. [0]=>
  37. string(19) "1152921504606846975"
  38. [1]=>
  39. string(20) "-1152921504606846975"
  40. }
  41. }