execute_block.phpt 682 B

123456789101112131415161718192021222324252627282930313233343536373839404142434445
  1. --TEST--
  2. PDO_Firebird: support EXECUTE BLOCK
  3. --EXTENSIONS--
  4. pdo_firebird
  5. --SKIPIF--
  6. <?php require('skipif.inc');
  7. ?>
  8. --ENV--
  9. LSAN_OPTIONS=detect_leaks=0
  10. --FILE--
  11. <?php
  12. require("testdb.inc");
  13. $dbh->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_WARNING);
  14. $sql = '
  15. execute block (a int = :e, b int = :d)
  16. returns (N int, M int)
  17. as
  18. declare z int;
  19. begin
  20. select 10
  21. from rdb$database
  22. into :z;
  23. n = a + b + z;
  24. m = z * a;
  25. suspend;
  26. end
  27. ';
  28. $query = $dbh->prepare($sql);
  29. $query->execute(['d' => 1, 'e' => 2]);
  30. $row = $query->fetch(\PDO::FETCH_OBJ);
  31. var_dump($row->N);
  32. var_dump($row->M);
  33. unset($query);
  34. unset($dbh);
  35. echo "done\n";
  36. ?>
  37. --EXPECT--
  38. int(13)
  39. int(20)
  40. done