@@ -2116,17 +2116,22 @@ PHP_FUNCTION(mssql_bind)
2116
2116
zend_hash_init (statement -> binds , 13 , NULL , _mssql_bind_hash_dtor , 0 );
2117
2117
}
2118
2118
2119
- memset ((void * )& bind ,0 ,sizeof (mssql_bind ));
2120
- zend_hash_add (statement -> binds ,Z_STRVAL_PP (param_name ),Z_STRLEN_PP (param_name ),& bind ,sizeof (mssql_bind ),(void * * )& bindp );
2121
- if ( NULL == bindp ) RETURN_FALSE ;
2122
- bindp -> zval = * var ;
2123
- zval_add_ref (var );
2124
-
2125
- /* no call to dbrpcparam if RETVAL */
2126
- if ( strcmp ("RETVAL" ,Z_STRVAL_PP (param_name ))!= 0 ) {
2127
- if (dbrpcparam (mssql_ptr -> link , Z_STRVAL_PP (param_name ), (BYTE )status , type , maxlen , datalen , (LPBYTE )value )== FAIL ) {
2128
- php_error_docref (NULL TSRMLS_CC , E_WARNING , "Unable to set parameter" );
2129
- RETURN_FALSE ;
2119
+ if (zend_hash_exists (statement -> binds , Z_STRVAL_PP (param_name ), Z_STRLEN_PP (param_name ))) {
2120
+ RETURN_FALSE ;
2121
+ }
2122
+ else {
2123
+ memset ((void * )& bind ,0 ,sizeof (mssql_bind ));
2124
+ zend_hash_add (statement -> binds , Z_STRVAL_PP (param_name ), Z_STRLEN_PP (param_name ), & bind , sizeof (mssql_bind ), (void * * )& bindp );
2125
+ if ( NULL == bindp ) RETURN_FALSE ;
2126
+ bindp -> zval = * var ;
2127
+ zval_add_ref (var );
2128
+
2129
+ /* no call to dbrpcparam if RETVAL */
2130
+ if ( strcmp ("RETVAL" ,Z_STRVAL_PP (param_name ))!= 0 ) {
2131
+ if (dbrpcparam (mssql_ptr -> link , Z_STRVAL_PP (param_name ), (BYTE )status , type , maxlen , datalen , (LPBYTE )value )== FAIL ) {
2132
+ php_error_docref (NULL TSRMLS_CC , E_WARNING , "Unable to set parameter" );
2133
+ RETURN_FALSE ;
2134
+ }
2130
2135
}
2131
2136
}
2132
2137
0 commit comments