@@ -3642,7 +3642,47 @@ PHPAPI void array_zip_values_and_scores(INTERNAL_FUNCTION_PARAMETERS, int use_at
36423642
36433643PHP_METHOD (Redis , hIncrBy )
36443644{
3645- generic_incrby_method (INTERNAL_FUNCTION_PARAM_PASSTHRU , "HINCRBY" , sizeof ("HINCRBY" )- 1 TSRMLS_CC );
3645+ zval * object ;
3646+ RedisSock * redis_sock ;
3647+ char * key = NULL , * cmd , * member , * response ;
3648+ int key_len , member_len , cmd_len , response_len ;
3649+ long val ;
3650+
3651+ if (zend_parse_method_parameters (ZEND_NUM_ARGS () TSRMLS_CC , getThis (), "Ossl" ,
3652+ & object , redis_ce ,
3653+ & key , & key_len , & member , & member_len , & val ) == FAILURE ) {
3654+ RETURN_FALSE ;
3655+ }
3656+
3657+ if (redis_sock_get (object , & redis_sock TSRMLS_CC ) < 0 ) {
3658+ RETURN_FALSE ;
3659+ }
3660+
3661+ /* HINCRBY key member amount */
3662+ cmd_len = redis_cmd_format (& cmd ,
3663+ "*4" _NL
3664+ "$7" _NL
3665+ "HINCRBY" _NL
3666+
3667+ "$%d" _NL /* key_len */
3668+ "%s" _NL /* key */
3669+
3670+ "$%d" _NL /* member_len */
3671+ "%s" _NL /* member */
3672+
3673+ "$%d" _NL /* val_len */
3674+ "%d" _NL /* val */
3675+
3676+ , key_len , key , key_len
3677+ , member_len , member , member_len
3678+ , integer_length (val ), val );
3679+
3680+ REDIS_PROCESS_REQUEST (redis_sock , cmd , cmd_len );
3681+ IF_ATOMIC () {
3682+ redis_long_response (INTERNAL_FUNCTION_PARAM_PASSTHRU , redis_sock , NULL TSRMLS_CC );
3683+ }
3684+ REDIS_PROCESS_RESPONSE (redis_long_response );
3685+
36463686}
36473687
36483688PHPAPI int redis_response_enqueued (RedisSock * redis_sock TSRMLS_DC ) {
0 commit comments