if (!stmt->executed) {
/* this is the first execute */
- if (stmt->dbh->alloc_own_columns) {
+ if (stmt->dbh->alloc_own_columns && !stmt->columns) {
/* for "big boy" drivers, we need to allocate memory to fetch
* the results into, so lets do that now */
ret = pdo_stmt_describe_columns(stmt TSRMLS_CC);
static int do_fetch_common(pdo_stmt_t *stmt, enum pdo_fetch_orientation ori,
long offset, int do_bind TSRMLS_DC) /* {{{ */
{
+ if (!stmt->executed) {
+ return 0;
+ }
+
if (!dispatch_param_event(stmt, PDO_PARAM_EVT_FETCH_PRE TSRMLS_CC)) {
return 0;
}
}
} while (1);
+ stmt->executed = 0;
RETURN_TRUE;
}
PDO_HANDLE_STMT_ERR();
RETURN_FALSE;
}
-
+ stmt->executed = 0;
RETURN_TRUE;
}
/* }}} */
return 0;
}
- if(!stmt->executed) {
+ if (!stmt->executed && !stmt->column_count) {
stmt->column_count = (int) PQnfields(S->result);
S->cols = ecalloc(stmt->column_count, sizeof(pdo_pgsql_column));
}