1
1
<?php
2
2
3
+ use Amp \Mysql \CommandResult ;
3
4
use Amp \Mysql \DataTypes ;
4
5
use Amp \Mysql \ResultSet ;
5
6
use PHPUnit \Framework \TestCase ;
@@ -28,6 +29,7 @@ function testQuery() {
28
29
29
30
/** @var \Amp\Mysql\ResultSet $resultset */
30
31
$ resultset = yield $ db ->query ("SELECT 1 AS a " );
32
+ $ this ->assertInstanceOf (ResultSet::class, $ resultset );
31
33
32
34
for ($ i = 0 ; yield $ resultset ->advance (); ++$ i ) {
33
35
$ this ->assertEquals (["a " => 1 ], $ resultset ->getCurrent ());
@@ -48,6 +50,7 @@ function testQueryFetchRow() {
48
50
49
51
/** @var \Amp\Mysql\ResultSet $resultset */
50
52
$ resultset = yield $ db ->query ('SELECT a FROM tmp ' );
53
+ $ this ->assertInstanceOf (ResultSet::class, $ resultset );
51
54
52
55
$ got = [];
53
56
while (yield $ resultset ->advance (ResultSet::FETCH_ARRAY )) {
@@ -71,7 +74,7 @@ function testMultiStmt() {
71
74
72
75
/** @var \Amp\Mysql\ResultSet $resultset */
73
76
$ resultset = yield $ db ->query ("INSERT INTO tmp VALUES (5, 6), (8, 9); SELECT a FROM tmp; SELECT b FROM tmp WHERE a = 5; SELECT b AS d, a + 1 AS c FROM tmp WHERE b < 7 " );
74
-
77
+ $ this -> assertInstanceOf (ResultSet::class, $ resultset );
75
78
76
79
$ got = [];
77
80
while (yield $ resultset ->advance (ResultSet::FETCH_ARRAY )) {
@@ -119,6 +122,7 @@ function testPrepared() {
119
122
$ this ->assertEquals (yield $ stmt ->getFields (), [$ base + ["name " => "a " , "original_name " => "a " ], $ base + ["name " => "b " , "original_name " => "b " ]]);
120
123
$ stmt ->bind ("num " , 9 );
121
124
$ result = yield $ stmt ->execute (5 );
125
+ $ this ->assertInstanceOf (ResultSet::class, $ result );
122
126
$ got = [];
123
127
while (yield $ result ->advance (ResultSet::FETCH_ARRAY )) {
124
128
$ got [] = $ result ->getCurrent ();
@@ -128,6 +132,7 @@ function testPrepared() {
128
132
/** @var \Amp\Mysql\Statement $stmt */
129
133
$ stmt = yield $ db ->prepare ("SELECT * FROM tmp WHERE a = ? OR b = ? " );
130
134
$ result = yield $ stmt ->execute (5 , 8 );
135
+ $ this ->assertInstanceOf (ResultSet::class, $ result );
131
136
$ got = [];
132
137
while (yield $ result ->advance (ResultSet::FETCH_ARRAY )) {
133
138
$ got [] = $ result ->getCurrent ();
@@ -138,6 +143,7 @@ function testPrepared() {
138
143
$ stmt = yield $ db ->prepare ("SELECT * FROM tmp WHERE a = :a OR b = ? " );
139
144
$ stmt ->bind ("a " , 5 );
140
145
$ result = yield $ stmt ->execute (9 );
146
+ $ this ->assertInstanceOf (ResultSet::class, $ result );
141
147
$ got = [];
142
148
while (yield $ result ->advance (ResultSet::FETCH_ARRAY )) {
143
149
$ got [] = $ result ->getCurrent ();
@@ -149,6 +155,32 @@ function testPrepared() {
149
155
$ stmt ->bind ("bar " , 9 );
150
156
/** @var \Amp\Mysql\CommandResult $result */
151
157
$ result = yield $ stmt ->execute ();
158
+ $ this ->assertInstanceOf (CommandResult::class, $ result );
159
+ $ this ->assertSame (1 , $ result ->affectedRows ());
160
+ });
161
+ }
162
+
163
+ function testExecute () {
164
+ \Amp \Loop::run (function () {
165
+ /** @var \Amp\Mysql\Connection $db */
166
+ $ db = yield connect ("host= " .DB_HOST .";user= " .DB_USER .";pass= " .DB_PASS .";db=connectiontest " );
167
+
168
+ $ db ->query ("CREATE TEMPORARY TABLE tmp SELECT 1 AS a, 2 AS b " );
169
+ $ db ->query ("INSERT INTO tmp VALUES (5, 6), (8, 9), (10, 11), (12, 13) " );
170
+
171
+ /** @var \Amp\Mysql\ResultSet $result */
172
+ $ result = yield $ db ->execute ("SELECT * FROM tmp WHERE a = ? OR b = ? " , 5 , 9 );
173
+ $ this ->assertInstanceOf (ResultSet::class, $ result );
174
+ $ got = [];
175
+ while (yield $ result ->advance (ResultSet::FETCH_ARRAY )) {
176
+ $ got [] = $ result ->getCurrent ();
177
+ }
178
+ $ this ->assertCount (2 , $ got );
179
+ $ this ->assertSame ([[5 , 6 ], [8 , 9 ]], $ got );
180
+
181
+ /** @var \Amp\Mysql\CommandResult $result */
182
+ $ result = yield $ db ->execute ("INSERT INTO tmp VALUES (?, ?) " , 14 , 15 );
183
+ $ this ->assertInstanceOf (CommandResult::class, $ result );
152
184
$ this ->assertSame (1 , $ result ->affectedRows ());
153
185
});
154
186
}
0 commit comments