PDO_DBG_ENTER("pdo_mysql_stmt_next_rowset");
PDO_DBG_INF_FMT("stmt=%p", S->stmt);
+ /* ensure that we free any previous unfetched results */
+ if (S->stmt) {
+ mysql_stmt_free_result(S->stmt);
+ }
+ if (S->result) {
+ mysql_free_result(S->result);
+ S->result = NULL;
+ }
+
#ifdef PDO_USE_MYSQLND
if (!H->emulate_prepare) {
if (!mysqlnd_stmt_more_results(S->stmt)) {
PDO_DBG_RETURN(0);
}
- /* TODO - this code is stolen from execute() - see above */
- if (S->result) {
- mysql_free_result(S->result);
- S->result = NULL;
- }
{
/* for SHOW/DESCRIBE and others the column/field count is not available before execute */
int i;
}
#endif
-/* ensure that we free any previous unfetched results */
-#ifndef PDO_USE_MYSQLND
- if (S->stmt) {
- mysql_stmt_free_result(S->stmt);
- }
-#endif
- if (S->result) {
- mysql_free_result(S->result);
- S->result = NULL;
- }
-
if (!mysql_more_results(H->server)) {
/* No more results */
PDO_DBG_RETURN(0);
} while ($stmt->nextRowSet());
var_dump($stmt->nextRowSet());
+ echo "Skip fetchAll(): ";
+ unset($stmt);
+ $stmt = $db->query('CALL p()');
+ var_dump($stmt->nextRowSet());
+ $stmt->closeCursor();
}
try {
array(0) {
}
bool(false)
+Skip fetchAll(): bool(true)
array(1) {
[0]=>
array(1) {
array(0) {
}
bool(false)
+Skip fetchAll(): bool(true)
Native PS...
array(1) {
[0]=>
array(0) {
}
bool(false)
+Skip fetchAll(): bool(true)
array(1) {
[0]=>
array(1) {
array(0) {
}
bool(false)
+Skip fetchAll(): bool(true)
done!