From: Ilia Alshanetsky Date: Sun, 22 Jul 2007 15:50:17 +0000 (+0000) Subject: Added test for KEY_PAIR code and fixed KEY_PAIR detection code X-Git-Tag: php-5.2.4RC1~91 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=20c419834116f341a0cd5c3036040f59a5e97ad8;p=php Added test for KEY_PAIR code and fixed KEY_PAIR detection code --- diff --git a/ext/pdo/pdo_stmt.c b/ext/pdo/pdo_stmt.c index e02a1c62b5..bb0ed50b0e 100755 --- a/ext/pdo/pdo_stmt.c +++ b/ext/pdo/pdo_stmt.c @@ -1521,7 +1521,7 @@ static PHP_METHOD(PDOStatement, fetchAll) if (!error) { PDO_STMT_CLEAR_ERR(); MAKE_STD_ZVAL(data); - if (how & (PDO_FETCH_GROUP|PDO_FETCH_KEY_PAIR)) { + if ((how & PDO_FETCH_GROUP) || how == PDO_FETCH_KEY_PAIR) { array_init(return_value); return_all = return_value; } else { @@ -1533,11 +1533,11 @@ static PHP_METHOD(PDOStatement, fetchAll) } } if (!error) { - if (how & PDO_FETCH_GROUP) { + if ((how & PDO_FETCH_GROUP)) { do { MAKE_STD_ZVAL(data); } while (do_fetch(stmt, TRUE, data, how, PDO_FETCH_ORI_NEXT, 0, return_all TSRMLS_CC)); - } else if (how & PDO_FETCH_KEY_PAIR) { + } else if (how == PDO_FETCH_KEY_PAIR) { while (do_fetch(stmt, TRUE, data, how, PDO_FETCH_ORI_NEXT, 0, return_all TSRMLS_CC)); } else { array_init(return_value); diff --git a/ext/pdo/tests/pdo_034.phpt b/ext/pdo/tests/pdo_034.phpt index 0f012c616a..f3014578fd 100644 --- a/ext/pdo/tests/pdo_034.phpt +++ b/ext/pdo/tests/pdo_034.phpt @@ -23,6 +23,7 @@ for ($i = 0; $i < 5; $i++) { var_dump($db->query("SELECT a,b FROM test")->fetch(PDO::FETCH_KEY_PAIR)); var_dump($db->query("SELECT a,b FROM test")->fetchAll(PDO::FETCH_KEY_PAIR)); var_dump($db->query("SELECT * FROM test")->fetch(PDO::FETCH_KEY_PAIR)); +var_dump($db->query("SELECT a,a FROM test")->fetchAll(PDO::FETCH_KEY_PAIR)); ?> --EXPECTF-- @@ -31,34 +32,31 @@ array(1) { string(1) "0" } array(5) { - [0]=> - array(1) { - ["test0"]=> - string(1) "0" - } - [1]=> - array(1) { - ["test1"]=> - string(1) "1" - } - [2]=> - array(1) { - ["test2"]=> - string(1) "2" - } - [3]=> - array(1) { - ["test3"]=> - string(1) "3" - } - [4]=> - array(1) { - ["test4"]=> - string(1) "4" - } + ["test0"]=> + string(1) "0" + ["test1"]=> + string(1) "1" + ["test2"]=> + string(1) "2" + ["test3"]=> + string(1) "3" + ["test4"]=> + string(1) "4" } -Warning: PDOStatement::fetch(): SQLSTATE[HY000]: General error: PDO::FETCH_KEY_PAIR fetch mode requires the result set to contain extactly 2 columns. in %s/tests%spdo_034.php on line %d +Warning: PDOStatement::fetch(): SQLSTATE[HY000]: General error: PDO::FETCH_KEY_PAIR fetch mode requires the result set to contain extactly 2 columns. in %s/pdo_034.php on line %d -Warning: PDOStatement::fetch(): SQLSTATE[HY000]: General error%s/tests%spdo_034.php on line %d +Warning: PDOStatement::fetch(): SQLSTATE[HY000]: General error in %s/pdo_034.php on line %d bool(false) +array(5) { + ["test0"]=> + string(5) "test0" + ["test1"]=> + string(5) "test1" + ["test2"]=> + string(5) "test2" + ["test3"]=> + string(5) "test3" + ["test4"]=> + string(5) "test4" +}