addColumn('test_int', 'integer'); $table->addColumn('test_string', 'string'); $sm = $this->_conn->getSchemaManager(); $sm->createTable($table); $this->_conn->insert('fetch_table', array('test_int' => 1, 'test_string' => 'foo')); } catch(\Exception $e) { } } public function testPrepareWithBindValue() { $sql = "SELECT test_int, test_string FROM fetch_table WHERE test_int = ? AND test_string = ?"; $stmt = $this->_conn->prepare($sql); $this->assertType('Doctrine\DBAL\Statement', $stmt); $stmt->bindValue(1, 1); $stmt->bindValue(2, 'foo'); $stmt->execute(); $row = $stmt->fetch(\PDO::FETCH_ASSOC); $row = array_change_key_case($row, \CASE_LOWER); $this->assertEquals(array('test_int' => 1, 'test_string' => 'foo'), $row); } public function testPrepareWithBindParam() { $paramInt = 1; $paramStr = 'foo'; $sql = "SELECT test_int, test_string FROM fetch_table WHERE test_int = ? AND test_string = ?"; $stmt = $this->_conn->prepare($sql); $this->assertType('Doctrine\DBAL\Statement', $stmt); $stmt->bindParam(1, $paramInt); $stmt->bindParam(2, $paramStr); $stmt->execute(); $row = $stmt->fetch(\PDO::FETCH_ASSOC); $row = array_change_key_case($row, \CASE_LOWER); $this->assertEquals(array('test_int' => 1, 'test_string' => 'foo'), $row); } public function testPrepareWithFetchAll() { $paramInt = 1; $paramStr = 'foo'; $sql = "SELECT test_int, test_string FROM fetch_table WHERE test_int = ? AND test_string = ?"; $stmt = $this->_conn->prepare($sql); $this->assertType('Doctrine\DBAL\Statement', $stmt); $stmt->bindParam(1, $paramInt); $stmt->bindParam(2, $paramStr); $stmt->execute(); $rows = $stmt->fetchAll(\PDO::FETCH_ASSOC); $rows[0] = array_change_key_case($rows[0], \CASE_LOWER); $this->assertEquals(array('test_int' => 1, 'test_string' => 'foo'), $rows[0]); } public function testPrepareWithFetchColumn() { $paramInt = 1; $paramStr = 'foo'; $sql = "SELECT test_int FROM fetch_table WHERE test_int = ? AND test_string = ?"; $stmt = $this->_conn->prepare($sql); $this->assertType('Doctrine\DBAL\Statement', $stmt); $stmt->bindParam(1, $paramInt); $stmt->bindParam(2, $paramStr); $stmt->execute(); $column = $stmt->fetchColumn(); $this->assertEquals(1, $column); } public function testPrepareWithQuoted() { $table = 'fetch_table'; $paramInt = 1; $paramStr = 'foo'; $sql = "SELECT test_int, test_string FROM " . $this->_conn->quoteIdentifier($table) . " ". "WHERE test_int = " . $this->_conn->quote($paramInt) . " AND test_string = " . $this->_conn->quote($paramStr); $stmt = $this->_conn->prepare($sql); $this->assertType('Doctrine\DBAL\Statement', $stmt); } public function testPrepareWithExecuteParams() { $paramInt = 1; $paramStr = 'foo'; $sql = "SELECT test_int, test_string FROM fetch_table WHERE test_int = ? AND test_string = ?"; $stmt = $this->_conn->prepare($sql); $this->assertType('Doctrine\DBAL\Statement', $stmt); $stmt->execute(array($paramInt, $paramStr)); $row = $stmt->fetch(\PDO::FETCH_ASSOC); $row = array_change_key_case($row, \CASE_LOWER); $this->assertEquals(array('test_int' => 1, 'test_string' => 'foo'), $row); } public function testFetchAll() { $sql = "SELECT test_int, test_string FROM fetch_table WHERE test_int = ? AND test_string = ?"; $data = $this->_conn->fetchAll($sql, array(1, 'foo')); $this->assertEquals(1, count($data)); $row = $data[0]; $this->assertEquals(2, count($row)); $row = array_change_key_case($row, \CASE_LOWER); $this->assertEquals(1, $row['test_int']); $this->assertEquals('foo', $row['test_string']); } public function testFetchRow() { $sql = "SELECT test_int, test_string FROM fetch_table WHERE test_int = ? AND test_string = ?"; $row = $this->_conn->fetchAssoc($sql, array(1, 'foo')); $row = array_change_key_case($row, \CASE_LOWER); $this->assertEquals(1, $row['test_int']); $this->assertEquals('foo', $row['test_string']); } public function testFetchArray() { $sql = "SELECT test_int, test_string FROM fetch_table WHERE test_int = ? AND test_string = ?"; $row = $this->_conn->fetchArray($sql, array(1, 'foo')); $this->assertEquals(1, $row[0]); $this->assertEquals('foo', $row[1]); } public function testFetchColumn() { $sql = "SELECT test_int, test_string FROM fetch_table WHERE test_int = ? AND test_string = ?"; $testInt = $this->_conn->fetchColumn($sql, array(1, 'foo'), 0); $this->assertEquals(1, $testInt); $sql = "SELECT test_int, test_string FROM fetch_table WHERE test_int = ? AND test_string = ?"; $testString = $this->_conn->fetchColumn($sql, array(1, 'foo'), 1); $this->assertEquals('foo', $testString); } }