@@ -1808,6 +1808,9 @@ static void php_odbc_fetch_hash(INTERNAL_FUNCTION_PARAMETERS, int result_type)
1808
1808
1809
1809
if (rc == SQL_SUCCESS_WITH_INFO ) {
1810
1810
ZVAL_STRINGL (& tmp , buf , result -> longreadlen );
1811
+ } else if (rc != SQL_SUCCESS ) {
1812
+ php_error_docref (NULL , E_WARNING , "Cannot get data of column #%d (retcode %u)" , i + 1 , rc );
1813
+ ZVAL_FALSE (& tmp );
1811
1814
} else if (result -> values [i ].vallen == SQL_NULL_DATA ) {
1812
1815
ZVAL_NULL (& tmp );
1813
1816
break ;
@@ -1961,6 +1964,9 @@ PHP_FUNCTION(odbc_fetch_into)
1961
1964
}
1962
1965
if (rc == SQL_SUCCESS_WITH_INFO ) {
1963
1966
ZVAL_STRINGL (& tmp , buf , result -> longreadlen );
1967
+ } else if (rc != SQL_SUCCESS ) {
1968
+ php_error_docref (NULL , E_WARNING , "Cannot get data of column #%d (retcode %u)" , i + 1 , rc );
1969
+ ZVAL_FALSE (& tmp );
1964
1970
} else if (result -> values [i ].vallen == SQL_NULL_DATA ) {
1965
1971
ZVAL_NULL (& tmp );
1966
1972
break ;
@@ -2198,12 +2204,13 @@ PHP_FUNCTION(odbc_result)
2198
2204
RETURN_FALSE ;
2199
2205
}
2200
2206
2201
- if (result -> values [field_ind ].vallen == SQL_NULL_DATA ) {
2202
- zend_string_efree (field_str );
2203
- RETURN_NULL ();
2204
- } else if (rc == SQL_NO_DATA_FOUND ) {
2207
+ if (rc != SQL_SUCCESS && rc != SQL_SUCCESS_WITH_INFO ) {
2205
2208
zend_string_efree (field_str );
2209
+ php_error_docref (NULL , E_WARNING , "Cannot get data of column #%d (retcode %u)" , field_ind + 1 , rc );
2206
2210
RETURN_FALSE ;
2211
+ } else if (result -> values [field_ind ].vallen == SQL_NULL_DATA ) {
2212
+ zend_string_efree (field_str );
2213
+ RETURN_NULL ();
2207
2214
}
2208
2215
/* Reduce fieldlen by 1 if we have char data. One day we might
2209
2216
have binary strings... */
@@ -2249,6 +2256,12 @@ PHP_FUNCTION(odbc_result)
2249
2256
RETURN_FALSE ;
2250
2257
}
2251
2258
2259
+ if (rc != SQL_SUCCESS && rc != SQL_SUCCESS_WITH_INFO ) {
2260
+ php_error_docref (NULL , E_WARNING , "Cannot get data of column #%d (retcode %u)" , field_ind + 1 , rc );
2261
+ efree (field );
2262
+ RETURN_FALSE ;
2263
+ }
2264
+
2252
2265
if (result -> values [field_ind ].vallen == SQL_NULL_DATA ) {
2253
2266
efree (field );
2254
2267
RETURN_NULL ();
@@ -2358,6 +2371,11 @@ PHP_FUNCTION(odbc_result_all)
2358
2371
}
2359
2372
if (rc == SQL_SUCCESS_WITH_INFO ) {
2360
2373
PHPWRITE (buf , result -> longreadlen );
2374
+ } else if (rc != SQL_SUCCESS ) {
2375
+ php_printf ("</td></tr></table>" );
2376
+ php_error_docref (NULL , E_WARNING , "Cannot get data of column #%d (retcode %u)" , i + 1 , rc );
2377
+ efree (buf );
2378
+ RETURN_FALSE ;
2361
2379
} else if (result -> values [i ].vallen == SQL_NULL_DATA ) {
2362
2380
php_printf ("<td>NULL</td>" );
2363
2381
break ;
0 commit comments