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

2018-02-24 15:41 更新

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

由數(shù)據(jù)庫 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() 方法創(chuàng)建一個在數(shù)據(jù)集實(shí)現(xiàn)一節(jié)描述過的 Database (DB) DataSet(數(shù)據(jù)庫數(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ù)庫斷言 API 那一節(jié)所示)時,這個方法會很方便。

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

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

掃描二維碼

下載編程獅App

公眾號
微信公眾號

編程獅公眾號