com php-src: don't replace with ?, just skip it: ext/mysqli/mysqli_api.c ext/mysqlnd/mysqlnd.c
| From: | Andrey Hristov | Date: | Thu, 20 Mar 2014 10:11:16 +0000 |
| Subject: | com php-src: don't replace with ?, just skip it: ext/mysqli/mysqli_api.c ext/mysqlnd/mysqlnd.c | ||
| Groups: | php.cvs | ||
| Request: | Send a blank email to php-cvs+get-76567@lists.php.net to get a copy of this message | ||
Commit: 059bc99d941a9984c88b80562e39421850fb2690
Author: Andrey Hristov <andrey@php.net> Thu, 20 Mar 2014 12:11:16 +0200
Parents: 44fb74fad1f1191110de982d10d6596c2b2b1015
Branches: PHP-5.5
Link: http://git.php.net/?p=php-src.git;a=commitdiff;h=059bc99d941a9984c88b80562e39421850fb2690
Log:
don't replace with ?, just skip it
Changed paths:
M ext/mysqli/mysqli_api.c
M ext/mysqlnd/mysqlnd..c
Diff:
diff --git a/ext/mysqli/mysqli_api.c b/ext/mysqli/mysqli_api.c
index d9e52b3..3911202 100644
--- a/ext/mysqli/mysqli_api.c
+++ b/ext/mysqli/mysqli_api.c
@@ -34,6 +34,99 @@
#include "php_mysqli_structs.h"
#include "mysqli_priv.h"
+
+#if !defined(MYSQLI_USE_MYSQLND)
+/* {{{ mysqli_tx_cor_options_to_string */
+static void mysqli_tx_cor_options_to_string(const MYSQL * const conn, smart_str * str, const
unsigned int mode)
+{
+ if (mode & TRANS_COR_AND_CHAIN && !(mode & TRANS_COR_AND_NO_CHAIN)) {
+ if (str->len) {
+ smart_str_appendl(str, " ", sizeof(" ") - 1);
+ }
+ smart_str_appendl(str, "AND CHAIN", sizeof("AND CHAIN") - 1);
+ } else if (mode & TRANS_COR_AND_NO_CHAIN && !(mode & TRANS_COR_AND_CHAIN)) {
+ if (str->len) {
+ smart_str_appendl(str, " ", sizeof(" ") - 1);
+ }
+ smart_str_appendl(str, "AND NO CHAIN", sizeof("AND NO CHAIN") - 1);
+ }
+
+ if (mode & TRANS_COR_RELEASE && !(mode & TRANS_COR_NO_RELEASE)) {
+ if (str->len) {
+ smart_str_appendl(str, " ", sizeof(" ") - 1);
+ }
+ smart_str_appendl(str, "RELEASE", sizeof("RELEASE") - 1);
+ } else if (mode & TRANS_COR_NO_RELEASE && !(mode & TRANS_COR_RELEASE)) {
+ if (str->len) {
+ smart_str_appendl(str, " ", sizeof(" ") - 1);
+ }
+ smart_str_appendl(str, "NO RELEASE", sizeof("NO RELEASE") - 1);
+ }
+ smart_str_0(str);
+}
+/* }}} */
+
+
+
+/* {{{ proto bool mysqli_commit_or_rollback_libmysql */
+static int mysqli_commit_or_rollback_libmysql(MYSQL * conn, zend_bool commit, const unsigned int
mode, const char * const name)
+{
+ int ret;
+ smart_str tmp_str = {0, 0, 0};
+ mysqli_tx_cor_options_to_string(conn, &tmp_str, mode);
+ smart_str_0(&tmp_str);
+
+ {
+ char * query;
+ char * name_esc = NULL;
+ size_t query_len;
+
+ if (name) {
+ const char * p_orig = name;
+ char * p_copy;
+ p_copy = name_esc = emalloc(strlen(name) + 1 + 2 + 2 + 1); /* space, open, close, NullS */
+ *p_copy++ = ' ';
+ *p_copy++ = '/';
+ *p_copy++ = '*';
+ while (1) {
+ register char v = *p_orig;
+ if (v == 0) {
+ break;
+ }
+ if ((v >= '0' && v <= '9') ||
+ (v >= 'a' && v <= 'z') ||
+ (v >= 'A' && v <= 'Z') ||
+ v == '-' ||
+ v == '_' ||
+ v == ' ' ||
+ v == '=')
+ {
+ *p_copy++ = v;
+ }
+ ++p_orig;
+ }
+ *p_copy++ = '*';
+ *p_copy++ = '/';
+ *p_copy++ = 0;
+ }
+
+ query_len = spprintf(&query, 0, (commit? "COMMIT%s %s":"ROLLBACK%s %s"),
+ name_esc? name_esc:"", tmp_str.c? tmp_str.c:"");
+ smart_str_free(&tmp_str);
+ if (name_esc) {
+ efree(name_esc);
+ name_esc = NULL;
+ }
+
+ ret = mysql_real_query(conn, query, query_len);
+ efree(query);
+ }
+ return ret;
+}
+/* }}} */
+#endif
+
+
/* {{{ proto mixed mysqli_affected_rows(object link)
Get number of affected rows in previous MySQL operation */
PHP_FUNCTION(mysqli_affected_rows)
@@ -637,99 +730,6 @@ PHP_FUNCTION(mysqli_close)
/* }}} */
-#if !defined(MYSQLI_USE_MYSQLND)
-/* {{{ mysqli_tx_cor_options_to_string */
-static void mysqli_tx_cor_options_to_string(const MYSQL * const conn, smart_str * str, const
unsigned int mode)
-{
- if (mode & TRANS_COR_AND_CHAIN && !(mode & TRANS_COR_AND_NO_CHAIN)) {
- if (str->len) {
- smart_str_appendl(str, " ", sizeof(" ") - 1);
- }
- smart_str_appendl(str, "AND CHAIN", sizeof("AND CHAIN") - 1);
- } else if (mode & TRANS_COR_AND_NO_CHAIN && !(mode & TRANS_COR_AND_CHAIN)) {
- if (str->len) {
- smart_str_appendl(str, " ", sizeof(" ") - 1);
- }
- smart_str_appendl(str, "AND NO CHAIN", sizeof("AND NO CHAIN") - 1);
- }
-
- if (mode & TRANS_COR_RELEASE && !(mode & TRANS_COR_NO_RELEASE)) {
- if (str->len) {
- smart_str_appendl(str, " ", sizeof(" ") - 1);
- }
- smart_str_appendl(str, "RELEASE", sizeof("RELEASE") - 1);
- } else if (mode & TRANS_COR_NO_RELEASE && !(mode & TRANS_COR_RELEASE)) {
- if (str->len) {
- smart_str_appendl(str, " ", sizeof(" ") - 1);
- }
- smart_str_appendl(str, "NO RELEASE", sizeof("NO RELEASE") - 1);
- }
- smart_str_0(str);
-}
-/* }}} */
-
-
-
-/* {{{ proto bool mysqli_commit_or_rollback_libmysql */
-static int mysqli_commit_or_rollback_libmysql(MYSQL * conn, zend_bool commit, const unsigned int
mode, const char * const name)
-{
- int ret;
- smart_str tmp_str = {0, 0, 0};
- mysqli_tx_cor_options_to_string(conn, &tmp_str, mode);
- smart_str_0(&tmp_str);
-
- {
- char * query;
- char * name_esc = NULL;
- size_t query_len;
-
- if (name) {
- const char * p_orig = name;
- char * p_copy;
- p_copy = name_esc = emalloc(strlen(name) + 1 + 2 + 2 + 1); /* space, open, close, NullS */
- *p_copy++ = ' ';
- *p_copy++ = '/';
- *p_copy++ = '*';
- while (1) {
- register char v = *p_orig;
- if (v == 0) {
- break;
- }
- if ((v >= '0' && v <= '9') ||
- (v >= 'a' && v <= 'z') ||
- (v >= 'A' && v <= 'Z') ||
- v == '-' ||
- v == '_' ||
- v == ' ' ||
- v == '=')
- {
- *p_copy = v;
- } else {
- *p_copy = '?';
- }
- ++p_orig;
- ++p_copy;
- }
- *p_copy++ = '*';
- *p_copy++ = '/';
- *p_copy++ = 0;
- }
-
- query_len = spprintf(&query, 0, (commit? "COMMIT%s %s":"ROLLBACK%s %s"),
- name_esc? name_esc:"", tmp_str.c? tmp_str.c:"");
- smart_str_free(&tmp_str);
- if (name_esc) {
- efree(name_esc);
- name_esc = NULL;
- }
-
- ret = mysql_real_query(conn, query, query_len);
- efree(query);
- }
- return ret;
-}
-/* }}} */
-#endif
/* {{{ proto bool mysqli_commit(object link[, int flags [, string name ]])
diff --git a/ext/mysqlnd/mysqlnd.c b/ext/mysqlnd/mysqlnd.c
index bbfc456...c138c50 100644
--- a/ext/mysqlnd/mysqlnd.c
+++ b/ext/mysqlnd/mysqlnd.c
@@ -2718,12 +2718,9 @@ MYSQLND_METHOD(mysqlnd_conn_data, tx_commit_or_rollback)(MYSQLND_CONN_DATA *
con
v == ' ' ||
v == '=')
{
- *p_copy = v;
- } else {
- *p_copy = '?';
+ *p_copy++ = v;
}
++p_orig;
- ++p_copy;
}
*p_copy++ = '*';
*p_copy++ = '/';