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