この記事では、Zend_Db_Table の使用法を例とともに説明します。参考のために皆さんと共有してください。詳細は次のとおりです:
1. はじめに
Zend_Db_Table は Zend Framework のテーブル モジュールです。zend_db_adapter を通じてデータベースに接続し、テーブル オブジェクトのデータベース スキーマを確認し、テーブルの操作とクエリを実行します。
2.スタート
まず、抽象クラス zend_db_table のデフォルトのデータベース アダプターを設定する必要があります (注: このクラスは抽象クラスであるため、直接インスタンス化できません。指定しない限り、最初にクラスを継承してからサブクラスをインスタンス化することしかできません)。他のタイプのデータベース アダプター。それ以外の場合、すべての zend_db_table クラス インスタンスはデフォルトのアダプターを使用します。リーリー
次に、データベースに「round_table」という名前のテーブルがあると仮定します。このテーブルに zend_db_table を使用するには、zend_db_table クラスを継承し、RoundTable という名前の新しいクラスを作成します。その後、データベースでこのクラスを使用できるようになります。 Round_table テーブルを使用して、データ行を操作し、データ結果を取得します。リーリー
3. テーブル名と主キー
デフォルトでは、zend_db_table クラスはそのクラス名をデータベース内のテーブル名として扱います (大文字と小文字が異なる場合は "_" を追加する必要があります)。たとえば、SomeTableName という名前の zend_db_table クラスは、次のテーブル "some_table_name" に対応します。この下線付きの形式でクラス名をデータベース テーブル名に対応させたくない場合は、クラスを定義するときに $_name を再構築できます。 リーリーzend_db_table クラスのデフォルトのフィールド「id」はテーブルの主キーです (テーブルの主キーの名前が「$id」でない場合は、このフィールドを自動インクリメントするのが最善ですが、必須ではありません)。 、テーブル エンティティ クラス Refactor $_primary
を定義できます リーリーテーブル エンティティ クラスの _setup() メソッドを通じてこれらの変数を設定することもできますが、変更後は必ずparent::_setup() メソッドを再度実行する必要があります。 リーリー
4. データを挿入します
新しいデータの行をテーブルに挿入するには、列名: データ連想配列をパラメーターとして使用して insert() メソッドを呼び出すだけです。
(zend フレームワーク) はデータを自動的に引用し、挿入された最後の行の ID 値を返します(注: これは、挿入された行の数を返す zend_db_adapter::insert メソッドとは異なります)。
リーリー
5. データを更新します
テーブル内のデータの行を変更するには、パラメータとしてデータの連想配列である列名を設定し、update() メソッドを呼び出し、さらに where 条件句を使用して変更する必要がある行を決定します。このメソッドはテーブル内のデータを変更し、変更された行の数を返します。
(Zend フレームワード) は変更されたデータを自動的に引用しますが、このチェックには条件句が含まれないため、作業を完了するにはテーブルの zend_db_adapter オブジェクトを使用する必要があります。リーリー
6. 行の削除
テーブル内のデータを削除するには、delete() メソッドを呼び出し、where 条件句を通じて削除する必要がある行を決定します。このメソッドは削除された行の数を返します。
(zend フレームワーク) は条件句を引用符で囲まないため、作業を完了するにはテーブルの zend_db_adapter オブジェクトを使用する必要があります
リーリー
7. 主キーに基づいてデータを検索します
find() メソッドを呼び出すと、主キー値を使用してテーブル内のデータを簡単に取得できます。特定のデータのみをクエリしたい場合は、このメソッドは zend_db_table_row オブジェクトを返します。また、複数のデータをクエリしたい場合は、このメソッドは zend_db_table_row オブジェクトを返します。 records は、zend_db_table_rowset オブジェクトを返します。
リーリー 8. レコードを取得します
主キーを通じて対応するデータ行を見つけるのは非常に便利ですが、多くの場合、zend_db_table はこの機能を実現するために fetchRow() メソッドを提供します。 () メソッドは where 条件ステートメント (およびオプションの order ステートメント) を通じて呼び出すことができ、その後 zend_db_tabel は条件を満たす最初のデータ行の zend_db_table_row オブジェクトを返します。
(zend フレームワーク) は where ステートメントに引用符を追加しないので、zend_db_adapter を通じてデータ処理を実行する必要があることに注意してください リーリー
9. 複数のレコードを取得します
一度に複数のレコードを取得する必要がある場合は、 fetchRow() メソッドを使用するのと同様に、このメソッドは where 句と order 句を設定できるだけでなく、limit-count と limit- も設定できます。オフセット値。返される結果の数を制限します。このメソッドを実行した後、選択した結果を Zend_Db_Table_Rowset オブジェクトとして返します。 (zend フレームワーク) は where ステートメントを引用しないので、zend_db_adapter を通じてデータ処理を実行する必要があることに注意してください。 リーリー
10. ドメインロジックの追加
Zend Framework のテーブル モジュールとして、Zend_Db_Table は独自のドメイン ロジックにうまくカプセル化します。たとえば、データ変更が送信される前に操作と検証を実装するために、insert() メソッドと update() メソッドをオーバーロードできます。 リーリー同様に、独自の find() メソッドを設定して、主キー以外の他のフィールドを通じてデータをクエリすることもできます。
<?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); } } ?>
更多关于zend相关内容感兴趣的读者可查看本站专题:《Zend FrameWork框架入门教程》、《php优秀开发框架总结》、《Yii框架入门及常用技巧总结》、《ThinkPHP入门教程》、《php面向对象程序设计入门教程》、《php+mysql数据库操作入门教程》及《php常见数据库操作技巧汇总》
希望本文所述对大家基于Zend Framework框架的PHP程序设计有所帮助。