bug_64037.phpt 1.0 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546
  1. --TEST--
  2. Bug #64037 Firebird return wrong value for numeric field
  3. --EXTENSIONS--
  4. pdo_firebird
  5. --SKIPIF--
  6. <?php require('skipif.inc'); ?>
  7. --ENV--
  8. LSAN_OPTIONS=detect_leaks=0
  9. --FILE--
  10. <?php
  11. require("testdb.inc");
  12. $dbh->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_WARNING);
  13. @$dbh->exec('DROP TABLE price');
  14. $dbh->exec("CREATE TABLE PRICE (ID INTEGER NOT NULL, TEXT VARCHAR(10), COST NUMERIC(15, 2))");
  15. $dbh->exec("INSERT INTO PRICE (ID, TEXT, COST) VALUES (1, 'test', -1.0)");
  16. $dbh->exec("INSERT INTO PRICE (ID, TEXT, COST) VALUES (2, 'test', -0.99)");
  17. $dbh->exec("INSERT INTO PRICE (ID, TEXT, COST) VALUES (3, 'test', -1.01)");
  18. $dbh->commit();
  19. $query = "SELECT * from price order by ID";
  20. $stmt = $dbh->prepare($query);
  21. $stmt->execute();
  22. $rows = $stmt->fetchAll();
  23. var_dump($rows[0]['COST']);
  24. var_dump($rows[1]['COST']);
  25. var_dump($rows[2]['COST']);
  26. $stmt = $dbh->prepare('DELETE FROM price');
  27. $stmt->execute();
  28. $dbh->commit();
  29. $dbh->exec('DROP TABLE price');
  30. unset($stmt);
  31. unset($dbh);
  32. ?>
  33. --EXPECT--
  34. string(5) "-1.00"
  35. string(5) "-0.99"
  36. string(5) "-1.01"