summaryrefslogtreecommitdiff
path: root/ext/pdo/php_pdo_driver.h
diff options
context:
space:
mode:
authorNikita Popov <nikita.ppv@gmail.com>2020-12-11 17:13:38 +0100
committerNikita Popov <nikita.ppv@gmail.com>2020-12-14 10:43:28 +0100
commit2d51c203f09551323ed595514e03ab206fd93129 (patch)
tree5069c1608f092ee57d312d28b1b9d4064abd0c62 /ext/pdo/php_pdo_driver.h
parentc288b5294bb0e13ad2904a3ec79265f727baaea3 (diff)
downloadphp-git-2d51c203f09551323ed595514e03ab206fd93129.tar.gz
PDO: Store/pass query_string as zend_string
Rather than storing char* + size_t, use a zend_string*. Also avoid various copies of the query string.
Diffstat (limited to 'ext/pdo/php_pdo_driver.h')
-rw-r--r--ext/pdo/php_pdo_driver.h11
1 files changed, 4 insertions, 7 deletions
diff --git a/ext/pdo/php_pdo_driver.h b/ext/pdo/php_pdo_driver.h
index 2c6bd96600..da53c1a3b9 100644
--- a/ext/pdo/php_pdo_driver.h
+++ b/ext/pdo/php_pdo_driver.h
@@ -247,7 +247,7 @@ typedef struct {
typedef int (*pdo_dbh_close_func)(pdo_dbh_t *dbh);
/* prepare a statement and stash driver specific portion into stmt */
-typedef int (*pdo_dbh_prepare_func)(pdo_dbh_t *dbh, const char *sql, size_t sql_len, pdo_stmt_t *stmt, zval *driver_options);
+typedef int (*pdo_dbh_prepare_func)(pdo_dbh_t *dbh, zend_string *sql, pdo_stmt_t *stmt, zval *driver_options);
/* execute a statement (that does not return a result set) */
typedef zend_long (*pdo_dbh_do_func)(pdo_dbh_t *dbh, const char *sql, size_t sql_len);
@@ -604,12 +604,10 @@ struct _pdo_stmt_t {
zend_long row_count;
/* used to hold the statement's current query */
- char *query_string;
- size_t query_stringlen;
+ zend_string *query_string;
/* the copy of the query with expanded binds ONLY for emulated-prepare drivers */
- char *active_query_string;
- size_t active_query_stringlen;
+ zend_string *active_query_string;
/* the cursor specific error code. */
pdo_error_type error_code;
@@ -685,8 +683,7 @@ PDO_API int php_pdo_parse_data_source(const char *data_source,
PDO_API zend_class_entry *php_pdo_get_dbh_ce(void);
PDO_API zend_class_entry *php_pdo_get_exception(void);
-PDO_API int pdo_parse_params(pdo_stmt_t *stmt, const char *inquery, size_t inquery_len,
- char **outquery, size_t *outquery_len);
+PDO_API int pdo_parse_params(pdo_stmt_t *stmt, zend_string *inquery, zend_string **outquery);
PDO_API void pdo_raise_impl_error(pdo_dbh_t *dbh, pdo_stmt_t *stmt,
const char *sqlstate, const char *supp);