数据库连接 API
最后更新于:2022-04-01 03:45:40
# 数据库连接 API
由数据库 TestCase 中的 `getConnection()` 方法所返回的连接界面有三个很有意思的方法:
~~~
<?php
interface PHPUnit_Extensions_Database_DB_IDatabaseConnection
{
public function createDataSet(Array $tableNames = NULL);
public function createQueryTable($resultName, $sql);
public function getRowCount($tableName, $whereClause = NULL);
// ...
}
?>
~~~
1.
`createDataSet()` 方法创建一个在数据集实现一节描述过的 Database (DB) DataSet(数据库数据集)。
~~~
<?php
class ConnectionTest extends PHPUnit_Extensions_Database_TestCase
{
public function testCreateDataSet()
{
$tableNames = array('guestbook');
$dataSet = $this->getConnection()->createDataSet();
}
}
?>
~~~
1.
`createQueryTable()` 方法用于创建 QueryTable 的实例,需要为其指定结果名称和所使用的 SQL 查询。当涉及到结果/表的断言(如后面关于数据库断言 API 那一节所示)时,这个方法会很方便。
~~~
<?php
class ConnectionTest extends PHPUnit_Extensions_Database_TestCase
{
public function testCreateQueryTable()
{
$tableNames = array('guestbook');
$queryTable = $this->getConnection()->createQueryTable('guestbook', 'SELECT * FROM guestbook');
}
}
?>
~~~
1.
`getRowCount()` 方法提供了一种方便的方式来取得表中的行数,并且还可以选择附加一个 WHERE 子句来在计数前对数据行进行过滤。它可以和一个简单的相等断言合用:
~~~
<?php
class ConnectionTest extends PHPUnit_Extensions_Database_TestCase
{
public function testGetRowCount()
{
$this->assertEquals(2, $this->getConnection()->getRowCount('guestbook'));
}
}
?>
~~~