field_funcs.phpt 1.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110
  1. --TEST--
  2. oci_field_*() family
  3. --EXTENSIONS--
  4. oci8
  5. --SKIPIF--
  6. <?php
  7. $target_dbs = array('oracledb' => true, 'timesten' => false); // test runs on these DBs
  8. require(__DIR__.'/skipif.inc');
  9. ?>
  10. --FILE--
  11. <?php
  12. require __DIR__."/connect.inc";
  13. require __DIR__.'/create_table.inc';
  14. $insert_sql = "INSERT INTO ".$schema."".$table_name." (id, value) VALUES (1,1)";
  15. if (!($s = oci_parse($c, $insert_sql))) {
  16. die("oci_parse(insert) failed!\n");
  17. }
  18. for ($i = 0; $i<3; $i++) {
  19. if (!oci_execute($s)) {
  20. die("oci_execute(insert) failed!\n");
  21. }
  22. }
  23. if (!oci_commit($c)) {
  24. die("oci_commit() failed!\n");
  25. }
  26. $select_sql = "SELECT * FROM ".$schema."".$table_name."";
  27. if (!($s = oci_parse($c, $select_sql))) {
  28. die("oci_parse(select) failed!\n");
  29. }
  30. if (!oci_execute($s)) {
  31. die("oci_execute(select) failed!\n");
  32. }
  33. $row = oci_fetch_array($s, OCI_NUM + OCI_RETURN_NULLS + OCI_RETURN_LOBS);
  34. var_dump($row);
  35. foreach ($row as $num => $field) {
  36. $num++;
  37. var_dump(oci_field_is_null($s, $num));
  38. var_dump(oci_field_name($s, $num));
  39. var_dump(oci_field_type($s, $num));
  40. var_dump(oci_field_type_raw($s, $num));
  41. var_dump(oci_field_scale($s, $num));
  42. var_dump(oci_field_precision($s, $num));
  43. var_dump(oci_field_size($s, $num));
  44. }
  45. require __DIR__.'/drop_table.inc';
  46. echo "Done\n";
  47. ?>
  48. --EXPECT--
  49. array(5) {
  50. [0]=>
  51. string(1) "1"
  52. [1]=>
  53. string(1) "1"
  54. [2]=>
  55. NULL
  56. [3]=>
  57. NULL
  58. [4]=>
  59. NULL
  60. }
  61. bool(false)
  62. string(2) "ID"
  63. string(6) "NUMBER"
  64. int(2)
  65. int(-127)
  66. int(0)
  67. int(22)
  68. bool(false)
  69. string(5) "VALUE"
  70. string(6) "NUMBER"
  71. int(2)
  72. int(-127)
  73. int(0)
  74. int(22)
  75. bool(true)
  76. string(4) "BLOB"
  77. string(4) "BLOB"
  78. int(113)
  79. int(0)
  80. int(0)
  81. int(4000)
  82. bool(true)
  83. string(4) "CLOB"
  84. string(4) "CLOB"
  85. int(112)
  86. int(0)
  87. int(0)
  88. int(4000)
  89. bool(true)
  90. string(6) "STRING"
  91. string(8) "VARCHAR2"
  92. int(1)
  93. int(0)
  94. int(0)
  95. int(10)
  96. Done