@@ -918,15 +918,16 @@ static bool do_fetch(pdo_stmt_t *stmt, zval *return_value, enum pdo_fetch_type h
918
918
for (idx = 0 ; i < stmt -> column_count ; i ++ , idx ++ ) {
919
919
zval val ;
920
920
fetch_value (stmt , & val , i , NULL );
921
+ zend_string * column_name = stmt -> columns [i ].name ;
921
922
922
923
switch (how ) {
923
924
case PDO_FETCH_ASSOC :
924
- zend_symtable_update (Z_ARRVAL_P (return_value ), stmt -> columns [ i ]. name , & val );
925
+ zend_symtable_update (Z_ARRVAL_P (return_value ), column_name , & val );
925
926
break ;
926
927
927
928
case PDO_FETCH_USE_DEFAULT :
928
929
case PDO_FETCH_BOTH :
929
- zend_symtable_update (Z_ARRVAL_P (return_value ), stmt -> columns [ i ]. name , & val );
930
+ zend_symtable_update (Z_ARRVAL_P (return_value ), column_name , & val );
930
931
if (zend_hash_index_add (Z_ARRVAL_P (return_value ), i , & val ) != NULL ) {
931
932
Z_TRY_ADDREF (val );
932
933
}
@@ -961,7 +962,7 @@ static bool do_fetch(pdo_stmt_t *stmt, zval *return_value, enum pdo_fetch_type h
961
962
}
962
963
zend_hash_next_index_insert_new (Z_ARRVAL (arr ), & val );
963
964
} else {
964
- zend_hash_update (Z_ARRVAL_P (return_value ), stmt -> columns [ i ]. name , & val );
965
+ zend_hash_update (Z_ARRVAL_P (return_value ), column_name , & val );
965
966
}
966
967
}
967
968
break ;
@@ -972,17 +973,13 @@ static bool do_fetch(pdo_stmt_t *stmt, zval *return_value, enum pdo_fetch_type h
972
973
973
974
case PDO_FETCH_OBJ :
974
975
case PDO_FETCH_INTO :
975
- zend_update_property_ex (NULL , Z_OBJ_P (return_value ),
976
- stmt -> columns [i ].name ,
977
- & val );
976
+ zend_update_property_ex (NULL , Z_OBJ_P (return_value ), column_name , & val );
978
977
zval_ptr_dtor (& val );
979
978
break ;
980
979
981
980
case PDO_FETCH_CLASS :
982
981
if ((flags & PDO_FETCH_SERIALIZE ) == 0 || idx ) {
983
- zend_update_property_ex (ce , Z_OBJ_P (return_value ),
984
- stmt -> columns [i ].name ,
985
- & val );
982
+ zend_update_property_ex (ce , Z_OBJ_P (return_value ), column_name , & val );
986
983
zval_ptr_dtor (& val );
987
984
} else {
988
985
if (!ce -> unserialize ) {
0 commit comments