Browse Source

Fixed bug #51670 getColumnMeta causes segfault when re-executing query after calling nextRowset

experimental/lemon
Pierrick Charron 16 years ago
parent
commit
1892d92d68
  1. 2
      ext/pdo/pdo_stmt.c
  2. 24
      ext/pdo_mysql/tests/bug_51670.phpt

2
ext/pdo/pdo_stmt.c

@ -2080,6 +2080,8 @@ static int pdo_stmt_do_next_rowset(pdo_stmt_t *stmt TSRMLS_DC)
}
if (!stmt->methods->next_rowset(stmt TSRMLS_CC)) {
/* Set the executed flag to 0 to reallocate columns on next execute */
stmt->executed = 0;
return 0;
}

24
ext/pdo_mysql/tests/bug_51670.phpt

@ -0,0 +1,24 @@
--TEST--
Bug #51670 (getColumnMeta causes segfault when re-executing query after calling nextRowset)
--SKIPIF--
<?php
if (!extension_loaded('pdo') || !extension_loaded('pdo_mysql')) die('skip not loaded');
require dirname(__FILE__) . '/config.inc';
require dirname(__FILE__) . '/../../../ext/pdo/tests/pdo_test.inc';
PDOTest::skip();
?>
--FILE--
<?php
require dirname(__FILE__) . '/../../../ext/pdo/tests/pdo_test.inc';
$db = PDOTest::test_factory(dirname(__FILE__) . '/common.phpt');
$query = $db->prepare('SELECT 1 AS num');
$query->execute();
if(!is_array($query->getColumnMeta(0))) die('FAIL!');
$query->nextRowset();
$query->execute();
if(!is_array($query->getColumnMeta(0))) die('FAIL!');
echo 'done!';
?>
--EXPECTF--
done!
Loading…
Cancel
Save