diff options
author | Nikita Popov <nikita.ppv@gmail.com> | 2020-12-18 11:02:36 +0100 |
---|---|---|
committer | Nikita Popov <nikita.ppv@gmail.com> | 2020-12-18 11:02:36 +0100 |
commit | 9718e5987f16747dd9f0785a6bad1dcdd254bb5f (patch) | |
tree | 546105292be97b2ce571cd7c804a4d94ed94691d /ext/pdo_mysql/mysql_statement.c | |
parent | 4ceea869ee9b280eb420ad379e441122606952de (diff) | |
parent | 51f57e7b8165600be7b81a15113b150369aa7215 (diff) | |
download | php-git-9718e5987f16747dd9f0785a6bad1dcdd254bb5f.tar.gz |
Merge branch 'PHP-8.0'
* PHP-8.0:
PDO MySQL: Handle boolean parameter binding with libmysql
Diffstat (limited to 'ext/pdo_mysql/mysql_statement.c')
-rw-r--r-- | ext/pdo_mysql/mysql_statement.c | 14 |
1 files changed, 14 insertions, 0 deletions
diff --git a/ext/pdo_mysql/mysql_statement.c b/ext/pdo_mysql/mysql_statement.c index 3e83c17599..f2ba5aa95a 100644 --- a/ext/pdo_mysql/mysql_statement.c +++ b/ext/pdo_mysql/mysql_statement.c @@ -368,6 +368,10 @@ static const char * const pdo_param_event_names[] = "PDO_PARAM_EVT_NORMALIZE", }; +#ifndef PDO_USE_MYSQLND +static unsigned char libmysql_false_buffer = 0; +static unsigned char libmysql_true_buffer = 1; +#endif static int pdo_mysql_stmt_param_hook(pdo_stmt_t *stmt, struct pdo_bound_param_data *param, enum pdo_param_event event_type) /* {{{ */ { @@ -504,6 +508,16 @@ static int pdo_mysql_stmt_param_hook(pdo_stmt_t *stmt, struct pdo_bound_param_da *b->length = Z_STRLEN_P(parameter); PDO_DBG_RETURN(1); + case IS_FALSE: + b->buffer_type = MYSQL_TYPE_TINY; + b->buffer = &libmysql_false_buffer; + PDO_DBG_RETURN(1); + + case IS_TRUE: + b->buffer_type = MYSQL_TYPE_TINY; + b->buffer = &libmysql_true_buffer; + PDO_DBG_RETURN(1); + case IS_LONG: b->buffer_type = MYSQL_TYPE_LONG; b->buffer = &Z_LVAL_P(parameter); |