]> granicus.if.org Git - php/commitdiff
sybase_affected_rows implementation submitted by John F. Dumas <jdumas@locutus.kingwo...
authorBrian Bruns <camber@php.net>
Fri, 16 Mar 2001 01:21:32 +0000 (01:21 +0000)
committerBrian Bruns <camber@php.net>
Fri, 16 Mar 2001 01:21:32 +0000 (01:21 +0000)
ext/sybase/php_sybase_db.c
ext/sybase/php_sybase_db.h

index 03b277016f3c566f584b75a580077d482e0601f2..a31ce54e65f0c1fd469986c2fb6e342fae0b7158 100644 (file)
@@ -56,6 +56,7 @@ function_entry sybase_functions[] = {
        PHP_FE(sybase_fetch_field,              NULL)
        PHP_FE(sybase_field_seek,               NULL)
        PHP_FE(sybase_result,                   NULL)
+       PHP_FE(sybase_affected_rows,            NULL)
        PHP_FE(sybase_min_error_severity,       NULL)
        PHP_FE(sybase_min_message_severity,     NULL)
        PHP_FALIAS(mssql_connect,               sybase_connect,                 NULL)
@@ -74,6 +75,7 @@ function_entry sybase_functions[] = {
        PHP_FALIAS(mssql_fetch_field,   sybase_fetch_field,             NULL)
        PHP_FALIAS(mssql_field_seek,    sybase_field_seek,              NULL)
        PHP_FALIAS(mssql_result,                sybase_result,                  NULL)
+       PHP_FALIAS(mssql_affected_rows,         sybase_affected_rows,                   NULL)
        PHP_FALIAS(mssql_min_error_severity,    sybase_min_error_severity,              NULL)
        PHP_FALIAS(mssql_min_message_severity,  sybase_min_message_severity,    NULL)
        {NULL, NULL, NULL}
@@ -1248,6 +1250,56 @@ PHP_FUNCTION(sybase_result)
 }
 /* }}} */
 
+
+/* {{{ proto int sybase_affected_rows([int link_id])
+    Get number of affected rows in last query */
+PHP_FUNCTION(sybase_affected_rows)
+{
+   pval *sybase_link_index = NULL;
+   sybase_link *sybase_ptr = NULL;
+   int id                  = 0;
+   int type                = 0;
+
+   switch(ZEND_NUM_ARGS())
+   {
+      case 0:
+      {
+         id = php_sybase_module.default_link;
+      }
+      break;
+
+      case 1:
+      {
+         if (getParameters(ht, 1, &sybase_link_index)==FAILURE)
+         {
+            RETURN_FALSE;
+         }
+
+         convert_to_long(sybase_link_index);
+         id = sybase_link_index->value.lval;
+      }
+      break;
+
+      default:
+      {
+         WRONG_PARAM_COUNT;
+      }
+      break;
+   }
+       
+   sybase_ptr = (sybase_link *)zend_list_find(id, &type);
+
+   if(type!=php_sybase_module.le_link && type!=php_sybase_module.le_plink)
+   {
+      php_error(E_WARNING,"%d is not a Sybase link index",id);
+      RETURN_FALSE;
+   }
+
+   return_value->value.lval = DBCOUNT(sybase_ptr->link);
+   return_value->type       = IS_LONG;
+}
+
 PHP_MINFO_FUNCTION(sybase)
 {
        char maxp[32],maxl[32];
index 7088a1453af98909f586b1791cccf1bfaae0b4c7..a622e1222a8d27324fd92686905cb376602eff07 100644 (file)
@@ -44,6 +44,7 @@ PHP_FUNCTION(sybase_fetch_row);
 PHP_FUNCTION(sybase_fetch_array);
 PHP_FUNCTION(sybase_fetch_object);
 PHP_FUNCTION(sybase_data_seek);
+PHP_FUNCTION(sybase_affected_rows);
 PHP_FUNCTION(sybase_result);
 PHP_FUNCTION(sybase_field_seek);
 PHP_FUNCTION(sybase_min_error_severity);