define5.phpt 1.5 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071
  1. --TEST--
  2. oci_define_by_name() for statement re-execution
  3. --EXTENSIONS--
  4. oci8
  5. --FILE--
  6. <?php
  7. require(__DIR__."/connect.inc");
  8. // Initialize
  9. $stmtarray = array(
  10. "drop table define5_tab",
  11. "create table define5_tab (id number, string varchar(10))",
  12. "insert into define5_tab (id, string) values (1, 'some')",
  13. "insert into define5_tab (id, string) values (2, 'thing')",
  14. );
  15. oci8_test_sql_execute($c, $stmtarray);
  16. // Run test
  17. echo "Test 1 - must do define before execute\n";
  18. $stmt = oci_parse($c, "select string from define5_tab where id = 1");
  19. oci_execute($stmt);
  20. var_dump(oci_define_by_name($stmt, "STRING", $string));
  21. while (oci_fetch($stmt)) {
  22. var_dump($string); // gives NULL
  23. var_dump(oci_result($stmt, 'STRING'));
  24. }
  25. echo "Test 2 - normal define order\n";
  26. $stmt = oci_parse($c, "select string from define5_tab where id = 1");
  27. var_dump(oci_define_by_name($stmt, "STRING", $string));
  28. oci_execute($stmt);
  29. while (oci_fetch($stmt)) {
  30. var_dump($string);
  31. }
  32. echo "Test 3 - no new define done\n";
  33. $stmt = oci_parse($c, "select string from define5_tab where id = 2");
  34. oci_execute($stmt);
  35. while (oci_fetch($stmt)) {
  36. var_dump($string); // not updated with new value
  37. var_dump(oci_result($stmt, 'STRING'));
  38. }
  39. // Cleanup
  40. $stmtarray = array(
  41. "drop table define5_tab"
  42. );
  43. oci8_test_sql_execute($c, $stmtarray);
  44. echo "Done\n";
  45. ?>
  46. --EXPECT--
  47. Test 1 - must do define before execute
  48. bool(true)
  49. NULL
  50. string(4) "some"
  51. Test 2 - normal define order
  52. bool(true)
  53. string(4) "some"
  54. Test 3 - no new define done
  55. string(4) "some"
  56. string(5) "thing"
  57. Done