@@ -918,15 +918,16 @@ static bool do_fetch(pdo_stmt_t *stmt, zval *return_value, enum pdo_fetch_type h
918918 for (idx = 0 ; i < stmt -> column_count ; i ++ , idx ++ ) {
919919 zval val ;
920920 fetch_value (stmt , & val , i , NULL );
921+ zend_string * column_name = stmt -> columns [i ].name ;
921922
922923 switch (how ) {
923924 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 );
925926 break ;
926927
927928 case PDO_FETCH_USE_DEFAULT :
928929 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 );
930931 if (zend_hash_index_add (Z_ARRVAL_P (return_value ), i , & val ) != NULL ) {
931932 Z_TRY_ADDREF (val );
932933 }
@@ -961,7 +962,7 @@ static bool do_fetch(pdo_stmt_t *stmt, zval *return_value, enum pdo_fetch_type h
961962 }
962963 zend_hash_next_index_insert_new (Z_ARRVAL (arr ), & val );
963964 } 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 );
965966 }
966967 }
967968 break ;
@@ -972,17 +973,13 @@ static bool do_fetch(pdo_stmt_t *stmt, zval *return_value, enum pdo_fetch_type h
972973
973974 case PDO_FETCH_OBJ :
974975 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 );
978977 zval_ptr_dtor (& val );
979978 break ;
980979
981980 case PDO_FETCH_CLASS :
982981 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 );
986983 zval_ptr_dtor (& val );
987984 } else {
988985 if (!ce -> unserialize ) {
0 commit comments