summaryrefslogtreecommitdiff
path: root/ext/pdo_mysql/mysql_statement.c
diff options
context:
space:
mode:
authorXinchen Hui <laruence@php.net>2014-06-23 19:12:15 +0800
committerXinchen Hui <laruence@php.net>2014-06-23 19:27:24 +0800
commit92a708989380bfb5d5da00665895025398bdbc91 (patch)
treefb888b41c25d52169f87f250b6b4d557accf42f3 /ext/pdo_mysql/mysql_statement.c
parent64c6b9bd5873240c53d803399ee8a8a0ad962dbf (diff)
downloadphp-git-92a708989380bfb5d5da00665895025398bdbc91.tar.gz
Use zend_string in mysqlnd
Diffstat (limited to 'ext/pdo_mysql/mysql_statement.c')
-rw-r--r--ext/pdo_mysql/mysql_statement.c17
1 files changed, 17 insertions, 0 deletions
diff --git a/ext/pdo_mysql/mysql_statement.c b/ext/pdo_mysql/mysql_statement.c
index 2c0fc85383..b2d2b7a01f 100644
--- a/ext/pdo_mysql/mysql_statement.c
+++ b/ext/pdo_mysql/mysql_statement.c
@@ -699,12 +699,21 @@ static int pdo_mysql_stmt_describe(pdo_stmt_t *stmt, int colno TSRMLS_DC) /* {{{
int namelen;
if (S->H->fetch_table_names) {
+#ifdef PDO_USE_MYSQLND
+ namelen = spprintf(&cols[i].name, 0, "%s.%s", S->fields[i].table->val, S->fields[i].name->val);
+#else
namelen = spprintf(&cols[i].name, 0, "%s.%s", S->fields[i].table, S->fields[i].name);
+#endif
cols[i].namelen = namelen;
} else {
+#ifdef PDO_USE_MYSQLND
+ cols[i].namelen = S->fields[i].name->len;
+ cols[i].name = estrndup(S->fields[i].name->val, S->fields[i].name->len);
+#else
namelen = strlen(S->fields[i].name);
cols[i].namelen = namelen;
cols[i].name = estrndup(S->fields[i].name, namelen);
+#endif
}
cols[i].precision = S->fields[i].decimals;
@@ -847,7 +856,11 @@ static int pdo_mysql_stmt_col_meta(pdo_stmt_t *stmt, long colno, zval *return_va
F = S->fields + colno;
if (F->def) {
+#ifdef PDO_USE_MYSQLND
+ add_assoc_str(return_value, "mysql:def", STR_COPY(F->def));
+#else
add_assoc_string(return_value, "mysql:def", F->def);
+#endif
}
if (IS_NOT_NULL(F->flags)) {
add_next_index_string(&flags, "not_null");
@@ -889,7 +902,11 @@ static int pdo_mysql_stmt_col_meta(pdo_stmt_t *stmt, long colno, zval *return_va
#endif
add_assoc_zval(return_value, "flags", &flags);
+#ifdef PDO_USE_MYSQLND
+ add_assoc_str(return_value, "table", STR_COPY(F->table));
+#else
add_assoc_string(return_value, "table", (char *) (F->table?F->table : ""));
+#endif
PDO_DBG_RETURN(SUCCESS);
} /* }}} */