Annotation of embedaddon/php/ext/mysqli/tests/mysqli_result_references.phpt, revision 1.1.1.1
1.1 misho 1: --TEST--
2: References to result sets
3: --SKIPIF--
4: <?php
5: require_once('skipif.inc');
6: require_once('skipifemb.inc');
7: require_once('skipifconnectfailure.inc');
8: ?>
9: --FILE--
10: <?php
11: require_once('connect.inc');
12: require_once('table.inc');
13:
14: $references = array();
15:
16: if (!(mysqli_real_query($link, "SELECT id, label FROM test ORDER BY id ASC LIMIT 2")) ||
17: !($res = mysqli_store_result($link)))
18: printf("[001] [%d] %s\n", mysqli_errno($link), mysqli_error($link));
19:
20: $idx = 0;
21: while ($row = mysqli_fetch_assoc($res)) {
22: /* mysqlnd: force seperation - create copies */
23: $references[$idx] = array(
24: 'id' => &$row['id'],
25: 'label' => $row['label'] . '');
26: $references[$idx++]['id'] += 0;
27: }
28:
29: mysqli_close($link);
30:
31: mysqli_data_seek($res, 0);
32: while ($row = mysqli_fetch_assoc($res)) {
33: /* mysqlnd: force seperation - create copies */
34: $references[$idx] = array(
35: 'id' => &$row['id'],
36: 'label' => $row['label'] . '');
37: $references[$idx++]['id'] += 0;
38: }
39:
40: mysqli_free_result($res);
41:
42: if (!$link = my_mysqli_connect($host, $user, $passwd, $db, $port, $socket))
43: printf("[002] Cannot connect to the server using host=%s, user=%s, passwd=***, dbname=%s, port=%s, socket=%s\n",
44: $host, $user, $db, $port, $socket);
45:
46: if (!(mysqli_real_query($link, "SELECT id, label FROM test ORDER BY id ASC LIMIT 2")) ||
47: !($res = mysqli_use_result($link)))
48: printf("[003] [%d] %s\n", mysqli_errno($link), mysqli_error($link));
49:
50: while ($row = mysqli_fetch_assoc($res)) {
51: /* mysqlnd: force seperation - create copies*/
52: $references[$idx] = array(
53: 'id' => &$row['id'],
54: 'label' => $row['label'] . '');
55: $references[$idx]['id2'] = &$references[$idx]['id'];
56: $references[$idx]['id'] += 1;
57: $references[$idx++]['id2'] += 1;
58: }
59:
60: $references[$idx++] = &$res;
61: mysqli_free_result($res);
62: @debug_zval_dump($references);
63:
64: if (!(mysqli_real_query($link, "SELECT id, label FROM test ORDER BY id ASC LIMIT 1")) ||
65: !($res = mysqli_use_result($link)))
66: printf("[004] [%d] %s\n", mysqli_errno($link), mysqli_error($link));
67:
68: $tmp = array();
69: while ($row = mysqli_fetch_assoc($res)) {
70: $tmp[] = $row;
71: }
72: $tmp = unserialize(serialize($tmp));
73: debug_zval_dump($tmp);
74: mysqli_free_result($res);
75:
76: mysqli_close($link);
77: print "done!";
78: ?>
79: --CLEAN--
80: <?php
81: require_once("clean_table.inc");
82: ?>
83: --EXPECTF--
84: array(7) refcount(2){
85: [0]=>
86: array(2) refcount(1){
87: [%u|b%"id"]=>
88: long(1) refcount(1)
89: [%u|b%"label"]=>
90: %unicode|string%(1) "a" refcount(1)
91: }
92: [1]=>
93: array(2) refcount(1){
94: [%u|b%"id"]=>
95: long(2) refcount(1)
96: [%u|b%"label"]=>
97: %unicode|string%(1) "b" refcount(1)
98: }
99: [2]=>
100: array(2) refcount(1){
101: [%u|b%"id"]=>
102: long(1) refcount(1)
103: [%u|b%"label"]=>
104: %unicode|string%(1) "a" refcount(1)
105: }
106: [3]=>
107: array(2) refcount(1){
108: [%u|b%"id"]=>
109: long(2) refcount(1)
110: [%u|b%"label"]=>
111: %unicode|string%(1) "b" refcount(1)
112: }
113: [4]=>
114: array(3) refcount(1){
115: [%u|b%"id"]=>
116: &long(3) refcount(2)
117: [%u|b%"label"]=>
118: %unicode|string%(1) "a" refcount(1)
119: [%u|b%"id2"]=>
120: &long(3) refcount(2)
121: }
122: [5]=>
123: array(3) refcount(1){
124: [%u|b%"id"]=>
125: &long(4) refcount(2)
126: [%u|b%"label"]=>
127: %unicode|string%(1) "b" refcount(1)
128: [%u|b%"id2"]=>
129: &long(4) refcount(2)
130: }
131: [6]=>
132: &object(mysqli_result)#2 (5) refcount(2){
133: [%u|b%"current_field"]=>
134: NULL refcount(1)
135: [%u|b%"field_count"]=>
136: NULL refcount(1)
137: [%u|b%"lengths"]=>
138: NULL refcount(1)
139: [%u|b%"num_rows"]=>
140: NULL refcount(1)
141: [%u|b%"type"]=>
142: NULL refcount(1)
143: }
144: }
145: array(1) refcount(2){
146: [0]=>
147: array(2) refcount(1){
148: [%u|b%"id"]=>
149: %unicode|string%(1) "1" refcount(1)
150: [%u|b%"label"]=>
151: %unicode|string%(1) "a" refcount(1)
152: }
153: }
154: done!
FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>