]> granicus.if.org Git - php/commitdiff
Added Macro for longlong values
authorGeorg Richter <georg@php.net>
Thu, 1 Jan 2004 14:04:35 +0000 (14:04 +0000)
committerGeorg Richter <georg@php.net>
Thu, 1 Jan 2004 14:04:35 +0000 (14:04 +0000)
added property stmt->affected_rows

ext/mysqli/mysqli_prop.c

index 2d07fa09c4b0c50da982275e6ad70454d33abc9e..3e870bfc6eaea30e332015d6865d928fc2c4e39c 100644 (file)
@@ -42,6 +42,25 @@ int __func(mysqli_object *obj, zval **retval TSRMLS_DC) \
        return SUCCESS;\
 }\
 
+#define MYSQLI_MAP_PROPERTY_LONG_LONG(__func, __type, __val)\
+int __func(mysqli_object *obj, zval **retval TSRMLS_DC) \
+{\
+       __type *p = (__type *)((MYSQLI_RESOURCE *)(obj->ptr))->ptr;\
+       ALLOC_ZVAL(*retval);\
+       if (!p) {\
+               ZVAL_NULL(*retval);\
+       } else {\
+               if (p->__val < LONG_MAX) { \
+                       ZVAL_LONG(*retval, (long)p->__val); \
+               } else { \
+                       char ret[40]; \
+                       sprintf(ret, "%llu", p->__val); \
+                       ZVAL_STRING(*retval, ret, 1); \
+               } \
+       }\
+       return SUCCESS;\
+}\
+
 #define MYSQLI_MAP_PROPERTY_STRING(__func, __type, __val)\
 int __func(mysqli_object *obj, zval **retval TSRMLS_DC) \
 {\
@@ -59,22 +78,6 @@ int __func(mysqli_object *obj, zval **retval TSRMLS_DC) \
        return SUCCESS;\
 }\
 
-/* {{{ property link_affected_rows_read */
-int link_affected_rows_read(mysqli_object *obj, zval **retval TSRMLS_DC) {
-       MYSQL *mysql = (MYSQL*)((MYSQLI_RESOURCE *)(obj->ptr))->ptr;
-       ALLOC_ZVAL(*retval);
-
-       if (mysql->affected_rows < LONG_MAX) {
-               ZVAL_LONG(*retval, (long)mysql->affected_rows);
-       } else {
-               char ret[40];   
-               sprintf(ret, "%llu", mysql->affected_rows);
-               ZVAL_STRING(*retval, ret, 1);
-       }
-       return SUCCESS;
-}
-/* }}} */
-
 /* {{{ property link_client_version_read */
 int link_client_version_read(mysqli_object *obj, zval **retval TSRMLS_DC) {
        ALLOC_ZVAL(*retval);
@@ -99,23 +102,8 @@ int link_connect_error_read(mysqli_object *obj, zval **retval TSRMLS_DC) {
 }
 /* }}} */
 
-/* {{{ property link_insert_id_read */
-int link_insert_id_read(mysqli_object *obj, zval **retval TSRMLS_DC) {
-       MYSQL *mysql = (MYSQL*)((MYSQLI_RESOURCE *)(obj->ptr))->ptr;
-       ALLOC_ZVAL(*retval);
-
-       if (mysql->last_used_con->insert_id < LONG_MAX) {
-               ZVAL_LONG(*retval, mysql->last_used_con->insert_id);
-       } else {
-               char ret[40];   
-               sprintf(ret, "%llu", mysql->last_used_con->insert_id);
-               ZVAL_STRING(*retval, ret, 1);
-       }
-       return SUCCESS;
-}
-/* }}} */
-
 /* link properties */
+MYSQLI_MAP_PROPERTY_LONG_LONG(link_affected_rows_read, MYSQL, last_used_con->affected_rows);
 MYSQLI_MAP_PROPERTY_LONG(link_client_flags_read, MYSQL, client_flag);
 MYSQLI_MAP_PROPERTY_LONG(link_errno_read, MYSQL, net.last_errno);
 MYSQLI_MAP_PROPERTY_STRING(link_error_read, MYSQL, net.last_error);
@@ -123,6 +111,7 @@ MYSQLI_MAP_PROPERTY_LONG(link_field_count_read, MYSQL, field_count);
 MYSQLI_MAP_PROPERTY_STRING(link_host_read, MYSQL, host);
 MYSQLI_MAP_PROPERTY_STRING(link_host_info_read, MYSQL, host_info);
 MYSQLI_MAP_PROPERTY_STRING(link_info_read, MYSQL, info);
+MYSQLI_MAP_PROPERTY_LONG_LONG(link_insert_id_read, MYSQL, last_used_con->insert_id);
 MYSQLI_MAP_PROPERTY_LONG(link_port_read, MYSQL, port);
 MYSQLI_MAP_PROPERTY_LONG(link_protocol_version_read, MYSQL, protocol_version);
 MYSQLI_MAP_PROPERTY_LONG(link_server_capabilities_read, MYSQL, server_capabilities);
@@ -175,9 +164,10 @@ int result_lengths_read(mysqli_object *obj, zval **retval TSRMLS_DC) {
 
 MYSQLI_MAP_PROPERTY_LONG(result_current_field_read, MYSQL_RES, current_field);
 MYSQLI_MAP_PROPERTY_LONG(result_field_count_read, MYSQL_RES, field_count);
-MYSQLI_MAP_PROPERTY_LONG(result_num_rows_read, MYSQL_RES, row_count);
+MYSQLI_MAP_PROPERTY_LONG_LONG(result_num_rows_read, MYSQL_RES, row_count);
 
 /* statement properties */
+MYSQLI_MAP_PROPERTY_LONG_LONG(stmt_affected_rows_read, MYSQL_STMT, mysql->last_used_con->affected_rows);
 MYSQLI_MAP_PROPERTY_STRING(stmt_query_read, MYSQL_STMT, query);
 MYSQLI_MAP_PROPERTY_LONG(stmt_param_count_read, MYSQL_STMT, param_count);
 MYSQLI_MAP_PROPERTY_LONG(stmt_field_count_read, MYSQL_STMT, field_count);
@@ -222,6 +212,7 @@ mysqli_property_entry mysqli_result_property_entries[] = {
 };
 
 mysqli_property_entry mysqli_stmt_property_entries[] = {
+       {"affected_rows", stmt_affected_rows_read, NULL},
        {"query", stmt_query_read, NULL},
        {"param_count", stmt_param_count_read, NULL},
        {"field_count", stmt_field_count_read, NULL},