1
1
--TEST--
2
- Bug #44861 (scrollable cursor don't work with pgsql)
2
+ PDO Common: Bug #44861 (scrollable cursor don't work with pgsql)
3
3
--SKIPIF--
4
- <?php
5
- if (!extension_loaded ('pdo ' ) || !extension_loaded ('pdo_pgsql ' )) die ('skip not loaded ' );
6
- require dirname (__FILE__ ) . '/config.inc ' ;
7
- require dirname (__FILE__ ) . '/../../../ext/pdo/tests/pdo_test.inc ' ;
4
+ <?php # vim:ft=php
5
+ if (!extension_loaded ('pdo ' )) die ('skip ' );
6
+ $ dir = getenv ('REDIR_TEST_DIR ' );
7
+ if (false == $ dir ) die ('skip no driver ' );
8
+ $ allowed = array ('oci ' , 'pgsql ' );
9
+ $ ok = false ;
10
+ foreach ($ allowed as $ driver ) {
11
+ if (!strncasecmp (getenv ('PDOTEST_DSN ' ), $ driver , strlen ($ driver ))) {
12
+ $ ok = true ;
13
+ }
14
+ }
15
+ if (!$ ok ) {
16
+ die ("skip Scrollable cursors not supported " );
17
+ }
18
+ require_once $ dir . 'pdo_test.inc ' ;
8
19
PDOTest::skip ();
9
20
?>
10
21
--FILE--
11
22
<?php
12
- require dirname (__FILE__ ) . '/../../../ext/pdo/tests/pdo_test.inc ' ;
13
- $ dbh = PDOTest::test_factory (dirname (__FILE__ ) . '/common.phpt ' );
23
+ if (getenv ('REDIR_TEST_DIR ' ) === false ) putenv ('REDIR_TEST_DIR= ' .dirname (__FILE__ ) . '/../../pdo/tests/ ' );
24
+ require_once getenv ('REDIR_TEST_DIR ' ) . 'pdo_test.inc ' ;
25
+ $ db = PDOTest::factory ();
14
26
15
- $ dbh ->setAttribute (PDO ::ATTR_ERRMODE , PDO ::ERRMODE_EXCEPTION );
27
+ $ db ->setAttribute (PDO ::ATTR_ERRMODE , PDO ::ERRMODE_EXCEPTION );
28
+
29
+ if ($ db ->getAttribute (PDO ::ATTR_DRIVER_NAME ) == 'oci ' ) {
30
+ $ from = 'FROM DUAL ' ;
31
+ } else {
32
+ $ from = '' ;
33
+ }
16
34
17
- $ query = "SELECT 'row1' AS r UNION SELECT 'row2' UNION SELECT 'row3' UNION SELECT 'row4' " ;
35
+ $ query = "SELECT 'row1' AS r $ from UNION SELECT 'row2' $ from UNION SELECT 'row3' $ from UNION SELECT 'row4' $ from " ;
18
36
$ aParams = array (PDO ::ATTR_CURSOR => PDO ::CURSOR_SCROLL );
19
37
20
- $ res = $ dbh ->prepare ($ query , $ aParams );
38
+ $ res = $ db ->prepare ($ query , $ aParams );
21
39
$ res ->execute ();
22
40
var_dump ($ res ->fetchColumn ());
23
41
var_dump ($ res ->fetchColumn ());
@@ -34,7 +52,7 @@ var_dump($res->fetch(PDO::FETCH_NUM, PDO::FETCH_ORI_REL, -1));
34
52
var_dump ($ res ->fetchAll (PDO ::FETCH_ASSOC ));
35
53
36
54
// Test binding params via emulated prepared query
37
- $ res = $ dbh ->prepare ("SELECT ? " , $ aParams );
55
+ $ res = $ db ->prepare ("SELECT ? $ from " , $ aParams );
38
56
$ res ->execute (array ("it's working " ));
39
57
var_dump ($ res ->fetch (PDO ::FETCH_NUM ));
40
58
0 commit comments