數(shù)據(jù)庫(kù)連接 API

2018-02-24 15:41 更新

數(shù)據(jù)庫(kù)連接 API

由數(shù)據(jù)庫(kù) TestCase 中的 getConnection() 方法所返回的連接界面有三個(gè)很有意思的方法:

<?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() 方法創(chuàng)建一個(gè)在數(shù)據(jù)集實(shí)現(xiàn)一節(jié)描述過(guò)的 Database (DB) DataSet(數(shù)據(jù)庫(kù)數(shù)據(jù)集)。

<?php
class ConnectionTest extends PHPUnit_Extensions_Database_TestCase
{
    public function testCreateDataSet()
    {
        $tableNames = array('guestbook');
        $dataSet = $this->getConnection()->createDataSet();
    }
}
?>
  1. createQueryTable() 方法用于創(chuàng)建 QueryTable 的實(shí)例,需要為其指定結(jié)果名稱和所使用的 SQL 查詢。當(dāng)涉及到結(jié)果/表的斷言(如后面關(guān)于數(shù)據(jù)庫(kù)斷言 API 那一節(jié)所示)時(shí),這個(gè)方法會(huì)很方便。

<?php
class ConnectionTest extends PHPUnit_Extensions_Database_TestCase
{
    public function testCreateQueryTable()
    {
        $tableNames = array('guestbook');
        $queryTable = $this->getConnection()->createQueryTable('guestbook', 'SELECT * FROM guestbook');
    }
}
?>
  1. getRowCount() 方法提供了一種方便的方式來(lái)取得表中的行數(shù),并且還可以選擇附加一個(gè) WHERE 子句來(lái)在計(jì)數(shù)前對(duì)數(shù)據(jù)行進(jìn)行過(guò)濾。它可以和一個(gè)簡(jiǎn)單的相等斷言合用:

<?php
class ConnectionTest extends PHPUnit_Extensions_Database_TestCase
{
    public function testGetRowCount()
    {
        $this->assertEquals(2, $this->getConnection()->getRowCount('guestbook'));
    }
}
?>
以上內(nèi)容是否對(duì)您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號(hào)
微信公眾號(hào)

編程獅公眾號(hào)