diff options
Diffstat (limited to 'ext/mysqlnd/mysqlnd_ps.c')
| -rw-r--r-- | ext/mysqlnd/mysqlnd_ps.c | 12 | 
1 files changed, 9 insertions, 3 deletions
| diff --git a/ext/mysqlnd/mysqlnd_ps.c b/ext/mysqlnd/mysqlnd_ps.c index 226a2d6e9b..55da87fdf0 100644 --- a/ext/mysqlnd/mysqlnd_ps.c +++ b/ext/mysqlnd/mysqlnd_ps.c @@ -151,13 +151,19 @@ MYSQLND_METHOD(mysqlnd_stmt, get_result)(MYSQLND_STMT * const s)  	}  	if (stmt->cursor_exists) { -		/* Silently convert buffered to unbuffered, for now */ -		DBG_RETURN(s->m->use_result(s)); +		/* Prepared statement cursors are not supported as of yet */ +		char * msg; +		mnd_sprintf(&msg, 0, "%s() cannot be used with cursors", get_active_function_name()); +		SET_CLIENT_ERROR(stmt->error_info, CR_NOT_IMPLEMENTED, UNKNOWN_SQLSTATE, msg); +		if (msg) { +			mnd_sprintf_free(msg); +		} +		DBG_RETURN(NULL);  	}  	/* Nothing to store for UPSERT/LOAD DATA*/  	if (GET_CONNECTION_STATE(&conn->state) != CONN_FETCHING_DATA || stmt->state != MYSQLND_STMT_WAITING_USE_OR_STORE) { -		SET_CLIENT_ERROR(conn->error_info, CR_COMMANDS_OUT_OF_SYNC, UNKNOWN_SQLSTATE, mysqlnd_out_of_sync); +		SET_CLIENT_ERROR(stmt->error_info, CR_COMMANDS_OUT_OF_SYNC, UNKNOWN_SQLSTATE, mysqlnd_out_of_sync);  		DBG_RETURN(NULL);  	} | 
