File tree Expand file tree Collapse file tree 2 files changed +71
-0
lines changed Expand file tree Collapse file tree 2 files changed +71
-0
lines changed Original file line number Diff line number Diff line change
1
+ <?php
2
+
3
+ // $ php examples/query.php "INSERT INTO user (name) VALUES ('Bob'),('Carol')"
4
+ // $ php examples/query.php "DELETE FROM user WHERE name = ?" "Carol"
5
+
6
+ require __DIR__ . '/../vendor/autoload.php ' ;
7
+
8
+ $ factory = new Clue \React \SQLite \Factory ();
9
+ $ db = $ factory ->openLazy (__DIR__ . '/users.db ' );
10
+
11
+ $ query = isset ($ argv [1 ]) ? $ argv [1 ] : 'SELECT 42 AS value ' ;
12
+ $ args = array_slice (isset ($ argv ) ? $ argv : [], 2 );
13
+
14
+ $ db ->query ($ query , $ args )->then (function (Clue \React \SQLite \Result $ result ) {
15
+ if ($ result ->columns !== null ) {
16
+ echo implode ("\t" , $ result ->columns ) . PHP_EOL ;
17
+ foreach ($ result ->rows as $ row ) {
18
+ echo implode ("\t" , $ row ) . PHP_EOL ;
19
+ }
20
+ } else {
21
+ echo "changed \tid " . PHP_EOL ;
22
+ echo $ result ->changed . "\t" . $ result ->insertId . PHP_EOL ;
23
+ }
24
+ }, function (Exception $ e ) {
25
+ echo 'Error: ' . $ e ->getMessage () . PHP_EOL ;
26
+ });
27
+
28
+ $ db ->quit ();
Original file line number Diff line number Diff line change
1
+ <?php
2
+
3
+ namespace Clue \Tests \React \SQLite ;
4
+
5
+ use PHPUnit \Framework \TestCase ;
6
+
7
+ class FunctionalExampleTest extends TestCase
8
+ {
9
+ public function testQueryExampleReturnsDefaultValue ()
10
+ {
11
+ $ output = $ this ->execExample (escapeshellarg (PHP_BINARY ) . ' query.php ' );
12
+
13
+ $ this ->assertEquals ('value ' . PHP_EOL . '42 ' . PHP_EOL , $ output );
14
+ }
15
+
16
+ public function testQueryExampleReturnsCalculatedValueFromPlaceholderVariables ()
17
+ {
18
+ $ output = $ this ->execExample (escapeshellarg (PHP_BINARY ) . ' query.php "SELECT ?+? AS result" 1 2 ' );
19
+
20
+ $ this ->assertEquals ('result ' . PHP_EOL . '3 ' . PHP_EOL , $ output );
21
+ }
22
+
23
+ public function testQueryExampleExecutedWithCgiReturnsDefaultValueAfterContentTypeHeader ()
24
+ {
25
+ $ code = 1 ;
26
+ $ null = DIRECTORY_SEPARATOR === '\\' ? 'NUL ' : '/dev/null ' ;
27
+ system ("php-cgi --version > $ null 2> $ null " , $ code );
28
+ if ($ code !== 0 ) {
29
+ $ this ->markTestSkipped ('Unable to execute "php-cgi" ' );
30
+ }
31
+
32
+ $ output = $ this ->execExample ('php-cgi query.php ' );
33
+
34
+ $ this ->assertStringEndsWith ("\r\n\r\n" . 'value ' . PHP_EOL . '42 ' . PHP_EOL , $ output );
35
+ }
36
+
37
+ private function execExample ($ command )
38
+ {
39
+ chdir (__DIR__ . '/../examples/ ' );
40
+
41
+ return shell_exec ($ command );
42
+ }
43
+ }
You can’t perform that action at this time.
0 commit comments