diff options
Diffstat (limited to 'ext/pdo_mysql/mysql_statement.c')
| -rwxr-xr-x | ext/pdo_mysql/mysql_statement.c | 10 | 
1 files changed, 9 insertions, 1 deletions
| diff --git a/ext/pdo_mysql/mysql_statement.c b/ext/pdo_mysql/mysql_statement.c index 98d3990fd6..db96a43ef3 100755 --- a/ext/pdo_mysql/mysql_statement.c +++ b/ext/pdo_mysql/mysql_statement.c @@ -241,6 +241,12 @@ static int pdo_mysql_stmt_next_rowset(pdo_stmt_t *stmt TSRMLS_DC)  	int ret;  	/* ensure that we free any previous unfetched results */ +#if HAVE_MYSQL_STMT_PREPARE +	if (S->stmt) { +		mysql_stmt_free_result(S->stmt); +		S->stmt = NULL; +	} +#endif  	if (S->result) {  		mysql_free_result(S->result);  		S->result = NULL; @@ -567,7 +573,9 @@ static int pdo_mysql_stmt_cursor_closer(pdo_stmt_t *stmt TSRMLS_DC)  	pdo_mysql_stmt *S = (pdo_mysql_stmt*)stmt->driver_data;  #if HAVE_MYSQL_STMT_PREPARE  	if (S->stmt) { -		return mysql_stmt_free_result(S->stmt); +		int retval = mysql_stmt_free_result(S->stmt); +		S->stmt = NULL; +		return retval ? 0 : 1;  	}  #endif  	if (S->result) { | 
