Annotation of embedaddon/php/ext/oci8/tests/bind_rowid.phpt, revision 1.1
1.1 ! misho 1: --TEST--
! 2: Test ROWID bind
! 3: --SKIPIF--
! 4: <?php if (!extension_loaded('oci8')) die("skip no oci8 extension"); ?>
! 5: --FILE--
! 6: <?php
! 7:
! 8: require(dirname(__FILE__)."/connect.inc");
! 9:
! 10: function do_query($c)
! 11: {
! 12: $s = oci_parse($c, 'select address from rid_tab order by id');
! 13: $id = 1;
! 14: oci_execute($s, OCI_DEFAULT);
! 15: while ($row = oci_fetch_array($s, OCI_ASSOC+OCI_RETURN_NULLS)) {
! 16: var_dump($row);
! 17: }
! 18: }
! 19:
! 20: $stmtarray = array(
! 21: "drop table rid_tab",
! 22: "create table rid_tab (id number, address varchar2(40))",
! 23: "insert into rid_tab (id, address) values (1, 'original text #1')",
! 24: "insert into rid_tab (id, address) values (2, 'original text #2')"
! 25: );
! 26:
! 27: oci8_test_sql_execute($c, $stmtarray);
! 28:
! 29: echo "Initial Data\n";
! 30: do_query($c);
! 31:
! 32: $s = oci_parse($c, 'select rowid, address from rid_tab where id = :l_bv for update');
! 33: $id = 1;
! 34: oci_bind_by_name($s, ':l_bv', $id);
! 35: oci_execute($s, OCI_DEFAULT);
! 36: $row = oci_fetch_array($s, OCI_ASSOC+OCI_RETURN_NULLS);
! 37:
! 38: $rid = $row['ROWID'];
! 39: $addr = $row['ADDRESS'];
! 40:
! 41: $addr = 'Some new text';
! 42:
! 43: // Save changes
! 44: $s = oci_parse($c,'update rid_tab set address = :a_bv where rowid = :r_bv');
! 45: oci_bind_by_name($s, ':r_bv', $rid, -1, OCI_B_ROWID);
! 46: oci_bind_by_name($s, ':a_bv', $addr);
! 47: oci_execute($s);
! 48:
! 49: echo "Verify Change\n";
! 50: do_query($c);
! 51:
! 52: // Cleanup
! 53:
! 54: $stmtarray = array(
! 55: "drop table rid_tab"
! 56: );
! 57:
! 58: oci8_test_sql_execute($c, $stmtarray);
! 59:
! 60: echo "Done\n";
! 61:
! 62: ?>
! 63: --EXPECT--
! 64: Initial Data
! 65: array(1) {
! 66: ["ADDRESS"]=>
! 67: string(16) "original text #1"
! 68: }
! 69: array(1) {
! 70: ["ADDRESS"]=>
! 71: string(16) "original text #2"
! 72: }
! 73: Verify Change
! 74: array(1) {
! 75: ["ADDRESS"]=>
! 76: string(13) "Some new text"
! 77: }
! 78: array(1) {
! 79: ["ADDRESS"]=>
! 80: string(16) "original text #2"
! 81: }
! 82: Done
FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>