Author: ahristov
Date: 2007-06-28 13:53:41 +0200 (Thu, 28 Jun 2007)
New Revision: 560
Modified:
trunk/mysqlnd/mysqlnd.h
trunk/mysqlnd/mysqlnd_enum_n_def.h
trunk/mysqlnd/mysqlnd_result.c
trunk/php4/ext/mysql/php_mysql.c
trunk/php5/ext/mysql/php_mysql.c
trunk/php6/ext/mysql/php_mysql.c
trunk/php6/ext/mysqli/mysqli.c
Log:
There are differences in the return values of ext/mysql
and ext/mysqli, thus mysqlnd should know which API uses it.
Modified: trunk/mysqlnd/mysqlnd.h
===================================================================
--- trunk/mysqlnd/mysqlnd.h 2007-06-28 11:32:50 UTC (rev 559)
+++ trunk/mysqlnd/mysqlnd.h 2007-06-28 11:53:41 UTC (rev 560)
@@ -372,7 +372,7 @@
MYSQLND_RES * (*use_result)(MYSQLND_RES * const result, zend_bool ps_protocol
TSRMLS_DC);
MYSQLND_RES * (*store_result)(MYSQLND_RES * result, MYSQLND * const conn, zend_bool ps
TSRMLS_DC);
- void (*fetch_into)(MYSQLND_RES *result, unsigned int flags, zval *return_value
TSRMLS_DC ZEND_FILE_LINE_DC);
+ void (*fetch_into)(MYSQLND_RES *result, unsigned int flags, zval *return_value,
enum_mysqlnd_extension ext TSRMLS_DC ZEND_FILE_LINE_DC);
void (*fetch_all)(MYSQLND_RES *result, unsigned int flags, zval *return_value
TSRMLS_DC ZEND_FILE_LINE_DC);
mynd_ulonglong (*num_rows)(const MYSQLND_RES * const result);
unsigned int (*num_fields)(const MYSQLND_RES * const result);
@@ -662,7 +662,7 @@
/* Query */
-#define mysqlnd_fetch_into(result, flags,
return_value) (result)->m.fetch_into((result), (flags), (return_value) TSRMLS_CC
ZEND_FILE_LINE_CC)
+#define mysqlnd_fetch_into(result, flags, ret_val,
ext) (result)->m.fetch_into((result), (flags), (ret_val), (ext) TSRMLS_CC
ZEND_FILE_LINE_CC)
#define mysqlnd_fetch_all(result, flags, return_value) (result)->m.fetch_all((result),
(flags), (return_value) TSRMLS_CC ZEND_FILE_LINE_CC)
#define mysqlnd_get_connection_stats(conn,
values) (conn)->m->get_statistics((conn), (values) TSRMLS_CC ZEND_FILE_LINE_CC)
#define mysqlnd_get_client_stats(values) _mysqlnd_get_client_stats((values) TSRMLS_CC
ZEND_FILE_LINE_CC)
Modified: trunk/mysqlnd/mysqlnd_enum_n_def.h
===================================================================
--- trunk/mysqlnd/mysqlnd_enum_n_def.h 2007-06-28 11:32:50 UTC (rev 559)
+++ trunk/mysqlnd/mysqlnd_enum_n_def.h 2007-06-28 11:53:41 UTC (rev 560)
@@ -56,6 +56,12 @@
#define CLIENT_MULTI_STATEMENTS (1UL << 16) /* Enable/disable multi-stmt support
*/
#define CLIENT_MULTI_RESULTS (1UL << 17) /* Enable/disable multi-results */
+typedef enum mysqlnd_extension
+{
+ MYSQLND_MYSQL = 0,
+ MYSQLND_MYSQLI,
+} enum_mysqlnd_extension;
+
enum
{
MYSQLND_FETCH_ASSOC = 1,
Modified: trunk/mysqlnd/mysqlnd_result.c
===================================================================
--- trunk/mysqlnd/mysqlnd_result.c 2007-06-28 11:32:50 UTC (rev 559)
+++ trunk/mysqlnd/mysqlnd_result.c 2007-06-28 11:53:41 UTC (rev 560)
@@ -936,7 +936,8 @@
/* {{{ mysqlnd_res::fetch_into */
static void
MYSQLND_METHOD(mysqlnd_res, fetch_into)(MYSQLND_RES *result, unsigned int flags,
- zval *return_value TSRMLS_DC ZEND_FILE_LINE_DC)
+ zval *return_value,
+ enum_mysqlnd_extension extension TSRMLS_DC ZEND_FILE_LINE_DC)
{
zend_bool fetched_anything;
@@ -953,7 +954,15 @@
RETURN_FALSE;
} else if (fetched_anything == FALSE) {
zval_dtor(return_value);
- RETURN_NULL();
+ switch (extension) {
+ case MYSQLND_MYSQLI:
+ RETURN_NULL();
+ break;
+ case MYSQLND_MYSQL:
+ RETURN_FALSE;
+ break;
+ default:exit(0);
+ }
}
/*
return_value is IS_NULL for no more data and an array for data. Thus it's ok
@@ -985,7 +994,7 @@
(result->data->data_cursor - result->data->data) <
result->data->row_count)
{
MAKE_STD_ZVAL(row);
- mysqlnd_fetch_into(result, flags, row);
+ mysqlnd_fetch_into(result, flags, row, MYSQLND_MYSQLI);
add_index_zval(return_value, i++, row);
}
}
Modified: trunk/php4/ext/mysql/php_mysql.c
===================================================================
--- trunk/php4/ext/mysql/php_mysql.c 2007-06-28 11:32:50 UTC (rev 559)
+++ trunk/php4/ext/mysql/php_mysql.c 2007-06-28 11:53:41 UTC (rev 560)
@@ -2090,7 +2090,7 @@
}
}
#else
- mysqlnd_fetch_into(mysql_result, MYSQLND_FETCH_ASSOC, return_value);
+ mysqlnd_fetch_into(mysql_result, MYSQLND_FETCH_ASSOC, return_value, MYSQLND_MYSQL);
#endif
}
/* }}} */
@@ -2108,7 +2108,7 @@
}
ZEND_FETCH_RESOURCE(result, MYSQL_RES *, &mysql_result, -1, "MySQL result",
le_result);
- mysqlnd_fetch_into(result, MYSQLND_FETCH_NUM, return_value);
+ mysqlnd_fetch_into(result, MYSQLND_FETCH_NUM, return_value, MYSQLND_MYSQL);
#else
php_mysql_fetch_hash(INTERNAL_FUNCTION_PARAM_PASSTHRU, MYSQL_NUM, 1);
#endif
@@ -2145,7 +2145,7 @@
}
ZEND_FETCH_RESOURCE(result, MYSQL_RES *, &mysql_result, -1, "MySQL result",
le_result);
- mysqlnd_fetch_into(result, mode, return_value);
+ mysqlnd_fetch_into(result, mode, return_value, MYSQLND_MYSQL);
#endif
}
/* }}} */
@@ -2166,7 +2166,7 @@
}
ZEND_FETCH_RESOURCE(result, MYSQL_RES *, &mysql_result, -1, "MySQL result",
le_result);
- mysqlnd_fetch_into(result, MYSQLND_FETCH_ASSOC, return_value);
+ mysqlnd_fetch_into(result, MYSQLND_FETCH_ASSOC, return_value, MYSQLND_MYSQL);
#endif
}
/* }}} */
Modified: trunk/php5/ext/mysql/php_mysql.c
===================================================================
--- trunk/php5/ext/mysql/php_mysql.c 2007-06-28 11:32:50 UTC (rev 559)
+++ trunk/php5/ext/mysql/php_mysql.c 2007-06-28 11:53:41 UTC (rev 560)
@@ -2041,7 +2041,7 @@
}
}
#else
- mysqlnd_fetch_into(mysql_result, MYSQLND_FETCH_ASSOC, return_value);
+ mysqlnd_fetch_into(mysql_result, MYSQLND_FETCH_ASSOC, return_value, MYSQLND_MYSQL);
#endif
#ifdef ZEND_ENGINE_2
@@ -2126,7 +2126,7 @@
}
ZEND_FETCH_RESOURCE(result, MYSQL_RES *, &mysql_result, -1, "MySQL result",
le_result);
- mysqlnd_fetch_into(result, MYSQLND_FETCH_NUM, return_value);
+ mysqlnd_fetch_into(result, MYSQLND_FETCH_NUM, return_value, MYSQLND_MYSQL);
#else
php_mysql_fetch_hash(INTERNAL_FUNCTION_PARAM_PASSTHRU, MYSQL_NUM, 1, 0);
#endif
@@ -2163,7 +2163,7 @@
}
ZEND_FETCH_RESOURCE(result, MYSQL_RES *, &mysql_result, -1, "MySQL result",
le_result);
- mysqlnd_fetch_into(result, mode, return_value);
+ mysqlnd_fetch_into(result, mode, return_value, MYSQLND_MYSQL);
#endif
}
/* }}} */
@@ -2184,7 +2184,7 @@
}
ZEND_FETCH_RESOURCE(result, MYSQL_RES *, &mysql_result, -1, "MySQL result",
le_result);
- mysqlnd_fetch_into(result, MYSQLND_FETCH_ASSOC, return_value);
+ mysqlnd_fetch_into(result, MYSQLND_FETCH_ASSOC, return_value, MYSQLND_MYSQL);
#endif
}
/* }}} */
Modified: trunk/php6/ext/mysql/php_mysql.c
===================================================================
--- trunk/php6/ext/mysql/php_mysql.c 2007-06-28 11:32:50 UTC (rev 559)
+++ trunk/php6/ext/mysql/php_mysql.c 2007-06-28 11:53:41 UTC (rev 560)
@@ -2016,7 +2016,7 @@
}
}
#else
- mysqlnd_fetch_into(mysql_result, MYSQLND_FETCH_ASSOC, return_value);
+ mysqlnd_fetch_into(mysql_result, MYSQLND_FETCH_ASSOC, return_value, MYSQLND_MYSQL);
#endif
if (into_object) {
@@ -2098,7 +2098,7 @@
}
ZEND_FETCH_RESOURCE(result, MYSQL_RES *, &mysql_result, -1, "MySQL result",
le_result);
- mysqlnd_fetch_into(result, MYSQLND_FETCH_NUM, return_value);
+ mysqlnd_fetch_into(result, MYSQLND_FETCH_NUM, return_value, MYSQLND_MYSQL);
#else
php_mysql_fetch_hash(INTERNAL_FUNCTION_PARAM_PASSTHRU, MYSQL_NUM, 1, 0);
#endif
@@ -2135,7 +2135,7 @@
}
ZEND_FETCH_RESOURCE(result, MYSQL_RES *, &mysql_result, -1, "MySQL result",
le_result);
- mysqlnd_fetch_into(result, mode, return_value);
+ mysqlnd_fetch_into(result, mode, return_value, MYSQLND_MYSQL);
#endif
}
/* }}} */
@@ -2156,7 +2156,7 @@
}
ZEND_FETCH_RESOURCE(result, MYSQL_RES *, &mysql_result, -1, "MySQL result",
le_result);
- mysqlnd_fetch_into(result, MYSQLND_FETCH_ASSOC, return_value);
+ mysqlnd_fetch_into(result, MYSQLND_FETCH_ASSOC, return_value, MYSQLND_MYSQL);
#endif
}
/* }}} */
Modified: trunk/php6/ext/mysqli/mysqli.c
===================================================================
--- trunk/php6/ext/mysqli/mysqli.c 2007-06-28 11:32:50 UTC (rev 559)
+++ trunk/php6/ext/mysqli/mysqli.c 2007-06-28 11:53:41 UTC (rev 560)
@@ -1073,8 +1073,7 @@
}
}
#else
- mysqlnd_fetch_into(result, MYSQLND_FETCH_ASSOC, return_value);
-
+ mysqlnd_fetch_into(result, MYSQLND_FETCH_ASSOC, return_value, MYSQLND_MYSQLI);
#endif
if (into_object && Z_TYPE_P(return_value) != IS_NULL) {
| Thread |
|---|
| • PHP mysqlnd svn commit: r560 - in trunk: mysqlnd php4/ext/mysql php5/ext/mysql php6/ext/mysql php6/ext/mysqli | ahristov | 28 Jun |