欧美一级特黄大片做受成人-亚洲成人一区二区电影-激情熟女一区二区三区-日韩专区欧美专区国产专区

Zend_Db_Table如何在ZendFramework中使用-創(chuàng)新互聯(lián)

Zend_Db_Table如何在Zend Framework中使用?針對這個問題,這篇文章詳細(xì)介紹了相對應(yīng)的分析和解答,希望可以幫助更多想解決這個問題的小伙伴找到更簡單易行的方法。

為拉薩等地區(qū)用戶提供了全套網(wǎng)頁設(shè)計制作服務(wù),及拉薩網(wǎng)站建設(shè)行業(yè)解決方案。主營業(yè)務(wù)為成都做網(wǎng)站、網(wǎng)站設(shè)計、外貿(mào)營銷網(wǎng)站建設(shè)、拉薩網(wǎng)站設(shè)計,以傳統(tǒng)方式定制建設(shè)網(wǎng)站,并提供域名空間備案等一條龍服務(wù),秉承以專業(yè)、用心的態(tài)度為用戶提供真誠的服務(wù)。我們深信只要達(dá)到每一位用戶的要求,就會得到認(rèn)可,從而選擇與我們長期合作。這樣,我們也可以走得更遠(yuǎn)!

1. 簡介


Zend_Db_Table 是Zend Framework的表模塊.它通過zend_db_adapter連接到 數(shù)據(jù)庫,為數(shù)據(jù)庫模式檢查表對象,并對該表進(jìn)行操作和查詢.

2. 開始

首先需要為抽象類zend_db_table(ares注:該類為抽象類,所以不能直接實例 化,只能先繼承該類,然后實例化子類)設(shè)定一個默認(rèn)對數(shù)據(jù)庫adapter;除非你 指定其他類型數(shù)據(jù)庫adapter,否則,所有的zend_db_table類實例都會使用 默認(rèn)adapter.

<?php
// 建立一個 adapter
require_once 'Zend/Db.php';
$params = array (
  'host'   => '127.0.0.1',
  'username' => 'malory',
  'password' => '******',
  'dbname'  => 'camelot'
);
$db = Zend_Db::factory('PDO_MYSQL', $params);
// 為所有的Zend_Db_Table對象設(shè)定默認(rèn)的adapter
require_once 'Zend/Db/Table.php';
Zend_Db_Table::setDefaultAdapter($db);
?>

接下來,我們假定數(shù)據(jù)庫中存在一個名為”round_table”的表.要對該表 使用zend_db_table,只需繼承zend_db_table類創(chuàng)建一個名為RoundTable的 新類.然后我就可以通過該類在數(shù)據(jù)庫中的round_table表中檢查,操作數(shù)據(jù) 行并且取得數(shù)據(jù)結(jié)果.

<?php
class RoundTable extends Zend_Db_Table {}
$table = new RoundTable();
?>

3. 表名和主鍵

默認(rèn)情況下,zend_db_table類會將其類名當(dāng)作數(shù)據(jù)庫中表名(大小寫不同 的地方需要添加"_").例如,一個名為SomeTableName的zend_db_table類在 數(shù)據(jù)庫中就對應(yīng)表”some_table_name”.假如不希望將類名與數(shù)據(jù)庫表名以 這種添加下劃線的形式進(jìn)行對應(yīng),可以在定義該類時對$_name進(jìn)行重構(gòu).

<?php
class ClassName extends Zend_Db_Table
{
  // 默認(rèn)表名為 'class_name'
  // 但是我們也可以對應(yīng)其它表
  protected $_name = 'another_table_name';
}
?>

zend_db_table類默認(rèn)字段”id”為表的主鍵(該字段好為自增的,但并不 是必須的).假如該表的主鍵并不是名為”$id”,你可以在定義表實體類時 對$_primary進(jìn)行重構(gòu)

<?php
class ClassName extends Zend_Db_Table
{
  // 默認(rèn)主鍵為'id'
  // 但我們也可以設(shè)定其他列名為主鍵
  protected $_primary = 'another_column_name';
}
?>

你也可以通過表實體類中_setup()方法設(shè)定這些變量;但是需要確保在修改 后再執(zhí)行一次parent::_setup()方法.

<?php
class ClassName extends Zend_Db_Table
{
  protected function _setup()
  {
    $this->_name = 'another_table_name';
    $this->_primary = 'another_column_name';
    parent::_setup();
  }
}
?>

4. 插入數(shù)據(jù)

要在表中插入一行新數(shù)據(jù),只需要將列名:數(shù)據(jù)的關(guān)聯(lián)數(shù)組作為參數(shù),調(diào) 用insert()方法即可.

(zend framework)會自動對數(shù)據(jù)進(jìn)行加引號處理, 并返回插入的最后一行的id值
(注意:這里不同于 zend_db_adapter::insert方法,后者返回的是插入的行數(shù)).

<?php
//
// INSERT INTO round_table
//   (noble_title, first_name, favorite_color)
//   VALUES ("King", "Arthur", "blue")
//
class RoundTable extends Zend_Db_Table {}
$table = new RoundTable();
$data = array(
  'noble_title' => 'King',
  'first_name' => 'Arthur',
  'favorite_color' => 'blue',
)
$id = $table->insert($data);
?>

5. 更新數(shù)據(jù)

要修改表中的任意行數(shù)據(jù),我們可以設(shè)定一個列名:數(shù)據(jù)的關(guān)聯(lián)數(shù)組作為參數(shù),調(diào) 用update()方法,同是通過一個where條件從句來決定需要改變的行.該方法將會 修改表中數(shù)據(jù)并返回被修改的行數(shù).

(Zend frameword)將會自動對修改對數(shù)據(jù)進(jìn)行加引號處理,但是這種檢查不包括 條件分句,所以你需要使用該表的zend_db_adapter對象完成該工作.


class RoundTable extends Zend_Db_Table {}
$table = new RoundTable();
$db = $table->getAdapter();
$set = array(
  'favorite_color' => 'yellow',
)
$where = $db->quoteInto('first_name = ?', 'Robin');
$rows_affected = $table->update($set, $where);

6. Deleting Rows


要刪除表中的數(shù)據(jù),我們可以調(diào)用delete()方法,同時通過一個where條件 分句來決定需要刪除的行.該方法將會返回被刪除的行數(shù).

(zend framework)不會對條件分句進(jìn)行加引號處理,所以你需要使用該表 的zend_db_adapter對象完成該工作

<?php
//
// DELETE FROM round_table
//   WHERE first_name = "Patsy"
//
class RoundTable extends Zend_Db_Table {}
$table = new RoundTable();
$db = $table->getAdapter();
$where = $db->quoteInto('first_name = ?', 'Patsy');
$rows_affected = $table->delete($where);
?>

7. 根據(jù)主鍵查找數(shù)據(jù)

通過調(diào)用find()方法,可以使用主鍵值輕松地在表中檢索數(shù)據(jù).假如你只想要查詢某 一條數(shù)據(jù),該方法將回返回一個zend_db_table_row對象,而當(dāng)你想要查詢多條記錄時 ,將會返回一個zend_db_table_rowset對象.

<?php
class RoundTable extends Zend_Db_Table {}
$table = new RoundTable();
// SELECT * FROM round_table WHERE id = "1"
$row = $table->find(1);
// SELECT * FROM round_table WHERE id IN("1", "2", 3")
$rowset = $table->find(array(1, 2, 3));
?>

8. 取回一條記錄

雖然通過主鍵找到相應(yīng)數(shù)據(jù)行是很便利的事情,但是在更多的時候,我們是 通過其他一些非主鍵的條件來查找數(shù)據(jù)行的.zend_db_table提供了一個 fetchRow()方法可以實現(xiàn)這個功能.我們可以通過一個where條件語句(和一 個可選的order語句)調(diào)用fetchRow()方法,然后zend_db_tabel將會返回滿 足條件的第一行數(shù)據(jù)的zend_db_table_row對象.

注意,(zend framework) 將不會對where語句進(jìn)行加引號處理,所以你需要 通過zend_db_adapter進(jìn)行數(shù)據(jù)處理

<?php
//
// SELECT * FROM round_table
//   WHERE noble_title = "Sir"
//   AND first_name = "Robin"
//   ORDER BY favorite_color
//
class RoundTable extends Zend_Db_Table {}
$table = new RoundTable();
$db = $table->getAdapter();
$where = $db->quoteInto('noble_title = ?', 'Sir')
    . $db->quoteInto('AND first_name = ?', 'Robin');
$order = 'favorite_color';
$row = $table->fetchRow($where, $order);
?>

9. 取回多條記錄

假如需要一次檢索多條記錄.可以使用fetchAll()方法.和使用fetchRow()方法類 似,該方法不僅僅可以設(shè)定where和order分句,也可以設(shè)定limit-count和 limit-offset值來限制返回的結(jié)果數(shù).執(zhí)行該方法后,把選擇的結(jié)果作為一個 Zend_Db_Table_Rowset對象返回.
注意,(zend framework) 將不會對where語句進(jìn)行加引號處理,所以你需要 通過zend_db_adapter進(jìn)行數(shù)據(jù)處理.

<?php
class RoundTable extends Zend_Db_Table {}
$table = new RoundTable();
$db = $table->getAdapter();
// SELECT * FROM round_table
//   WHERE noble_title = "Sir"
//   ORDER BY first_name
//   LIMIT 10 OFFSET 20
$where = $db->quoteInto('noble_title = ?', 'Sir');
$order = 'first_name';
$count = 10;
$offset = 20;
$rowset = $table->fetchAll($where, $order, $count, $offset);
?>

10. Adding Domain Logic

作為Zend Framework的表模塊,Zend_Db_Table將它自己很好的封裝到獨特的domain logic下. 例如,你可以重載insert()和update()方法,以實現(xiàn)在數(shù)據(jù)更改提交前的操作和驗證.

<?php
class RoundTable extends Zend_Db_Table
{
  public function insert($data)
  {
    // 添加一個時間戳
    if (empty($data['created_on'])) {
      $data['created_on'] = time();
    }
    return parent::insert($data);
  }
  public function update($data)
  {
    // 添加一個時間戳
    if (empty($data['updated_on'])) {
      $data['updated_on'] = time();
    }
    return parent::update($data);
  }
}
?>

類似的,你也可以設(shè)定自己的find()方法,通過主鍵外的其他字段來查詢數(shù)據(jù).

<?php
class RoundTable extends Zend_Db_Table
{
  public function findAllWithName($name)
  {
    $db = $this->getAdapter();
    $where = $db->quoteInto("name = ?", $name);
    $order = "first_name";
    return $this->fetchAll($where, $order);
  }
}
?>

關(guān)于Zend_Db_Table如何在Zend Framework中使用問題的解答就分享到這里了,希望以上內(nèi)容可以對大家有一定的幫助,如果你還有很多疑惑沒有解開,可以關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道了解更多相關(guān)知識。

本文名稱:Zend_Db_Table如何在ZendFramework中使用-創(chuàng)新互聯(lián)
URL地址:http://aaarwkj.com/article34/copope.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供企業(yè)建站、商城網(wǎng)站、ChatGPT動態(tài)網(wǎng)站、虛擬主機全網(wǎng)營銷推廣

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

外貿(mào)網(wǎng)站制作
熟女人妻视频一区二区| 国产免费很黄很色视频| 国产H精品在线观看| 国产亚洲综合久久系列| 夫妻在线观看高清视频| 欧美色欧美亚洲另类视频| 一区二区三区在线观看淫| 亚洲大乳大丰满中文字幕| 亚洲天堂男人的天堂狠狠操 | 亚洲国产日韩中文字幕| 欧美日韩一区二区三区666| 国产精品午夜视频免费观看| 免费在线观看福利av| 日韩无遮挡免费在线观看| 日本精品动漫一区二区三区| 日韩欧美在线观看一区二区| av男人的天堂一区二区| 日韩一区精品视频一区二区| 九九热在线免费观看精品视频 | 国产精品午夜福利天堂| 五月开心婷婷中文字幕| 97色伦综合在线欧美| 小黄片免费在线播放观看| 九九热精品视频美谷朱里| 亚洲福利视频在线观看免费| 日韩av中文一区二区| 日本又色又爽又黄的观看| 日韩欧美亚洲国产另类| 日韩欧美亚洲一区二区三区| 一区二区三区国产不卡| 亚洲天堂av日韩在线| 欧美女人又粗又长亚洲| 蜜桃视频国产在线观看| 国产精品毛片av在线| 91午夜福利视频免费播放| 欧美日韩激情中文字幕| 日韩精品视频一二三区| 日本九州不卡久久精品一区| 青青成线在人线免费啪| 久热99在线视频免费观看| 99久久婷婷免费国产综合精品|