@@ -43,6 +43,11 @@ abstract class Zend_Db_Statement implements Zend_Db_Statement_Interface
{
/**
+ * @var resource|object The driver level statement object/resource
+ */
+ protected $_stmt = null;
+
+ /**
* @var Zend_Db_Adapter_Abstract
*/
protected $_adapter = null;
@@ -111,7 +116,7 @@ abstract class Zend_Db_Statement implements Zend_Db_Statement_Interface
$this->_queryId = $this->_adapter->getProfiler()->queryStart($sql);
}
-
* @param string $sql
* @return void
@@ -456,4 +461,14 @@ abstract class Zend_Db_Statement implements Zend_Db_Statement_Interface
return $this->_adapter;
+ * Gets the resource or object setup by the
+ * _parse
+ * @return unknown_type
+ public function getDriverStatement()
+ {
+ return $this->_stmt;
+ }
@@ -35,10 +35,6 @@ require_once 'Zend/Db/Statement.php';
class Zend_Db_Statement_Db2 extends Zend_Db_Statement
- /**
- * Statement resource handle.
- */
- protected $_stmt = null;
* Column names.
@@ -40,13 +40,6 @@ class Zend_Db_Statement_Mysqli extends Zend_Db_Statement
- * The mysqli_stmt object.
- *
- * @var mysqli_stmt
- protected $_stmt;
*
* @var array
@@ -38,11 +38,6 @@ class Zend_Db_Statement_Oracle extends Zend_Db_Statement
- * The connection_stmt object.
protected $_keys;
@@ -41,13 +41,6 @@ class Zend_Db_Statement_Pdo extends Zend_Db_Statement implements IteratorAggrega
- * The statement object.
- * @var PDOStatement
* @var int
protected $_fetchMode = PDO::FETCH_ASSOC;
@@ -36,10 +36,6 @@ require_once 'Zend/Db/Statement.php';
class Zend_Db_Statement_Sqlsrv extends Zend_Db_Statement
* The connection_stmt object original string.
@@ -123,6 +123,15 @@ class Zend_Db_Statement_MysqliTest extends Zend_Db_Statement_TestCommon
+ * @group ZF-7706
+ public function testStatementCanReturnDriverStatement()
+ $statement = parent::testStatementCanReturnDriverStatement();
+ $this->assertType('mysqli_stmt', $statement->getDriverStatement());
public function getDriver()
return 'Mysqli';
@@ -69,6 +69,15 @@ class Zend_Db_Statement_Pdo_MysqlTest extends Zend_Db_Statement_Pdo_TestCommon
$this->assertEquals(4, count($results));
+ $this->assertType('PDOStatement', $statement->getDriverStatement());
return 'Pdo_Mysql';
@@ -50,6 +50,15 @@ class Zend_Db_Statement_Pdo_SqliteTest extends Zend_Db_Statement_Pdo_TestCommon
'native_type', 'sqlite:decl_type', 'flags', 'name', 'len', 'precision', 'pdo_type'
);
return 'Pdo_Sqlite';
@@ -858,4 +858,14 @@ abstract class Zend_Db_Statement_TestCommon extends Zend_Db_TestSetup
$this->assertEquals($valueArray, $stmt->getAttribute(1235), "Expected array #2");
$this->assertEquals($value, $stmt->getAttribute(1234), "Expected '$value' #2");
+ $statement = $this->_db->query('SELECT * FROM zfproducts');
+ $this->assertNotNull($statement->getDriverStatement());
+ return $statement;