From 7f024a57bcfeee9b0cc659b9563469a1c987296f Mon Sep 17 00:00:00 2001 From: Ilia Alshanetsky Date: Mon, 4 Dec 2006 02:40:20 +0000 Subject: [PATCH] MFB: Fixed bug #38252 (Incorrect PDO error message on invalid default fetch mode). --- ext/pdo/pdo_dbh.c | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/ext/pdo/pdo_dbh.c b/ext/pdo/pdo_dbh.c index 5bf3683b70..5f6f92bad2 100755 --- a/ext/pdo/pdo_dbh.c +++ b/ext/pdo/pdo_dbh.c @@ -711,6 +711,15 @@ static int pdo_dbh_attribute_set(pdo_dbh_t *dbh, long attr, zval *value TSRMLS_D return SUCCESS; case PDO_ATTR_DEFAULT_FETCH_MODE: + if (Z_TYPE_P(value) == IS_ARRAY) { + zval **tmp; + if (zend_hash_index_find(Z_ARRVAL_P(value), 0, (void**)&tmp) == SUCCESS && Z_TYPE_PP(tmp) == IS_LONG) { + if (Z_LVAL_PP(tmp) == PDO_FETCH_INTO || Z_LVAL_PP(tmp) == PDO_FETCH_CLASS) { + pdo_raise_impl_error(dbh, NULL, "HY000", "FETCH_INTO and FETCH_CLASS are not yet supported as default fetch modes" TSRMLS_CC); + return FAILURE; + } + } + } convert_to_long(value); if (Z_LVAL_P(value) == PDO_FETCH_USE_DEFAULT) { pdo_raise_impl_error(dbh, NULL, "HY000", "invalid fetch mode type" TSRMLS_CC); -- 2.40.0