1
0
mirror of https://github.com/php/php-src.git synced 2026-04-09 00:53:30 +02:00

Fixed bug #38252 (Incorrect PDO error message on invalid default fetch mode).

This commit is contained in:
Ilia Alshanetsky
2006-12-04 02:40:08 +00:00
parent fc21d423fd
commit 44045f8cb1
2 changed files with 11 additions and 0 deletions

2
NEWS
View File

@@ -131,6 +131,8 @@ PHP NEWS
(Dmitry)
- Fixed bug #38456 (Apache2 segfaults when virtual() is called in .php
ErrorDocument). (Ilia)
- Fixed bug #38252 (Incorrect PDO error message on invalid default fetch
mode). (Ilia)
- Fixed bug #37773 (iconv_substr() gives "Unknown error" when string length = 1").
(Ilia)
- Fixed bug #36975 (natcasesort() causes array_pop() to misbehave). (Hannes)

View File

@@ -706,6 +706,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);