問題タブ [zend-db]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
7 に答える
13979 参照

php - Zend Form Edit と Zend_Validate_Db_NoRecordExists

私は、自分で使用するためのユーティリティ Web サイトをいくつか構築することで、Zend のスキルをゆっくりと築き上げています。私は Zend Forms と Form validation を使用してきましたが、Zend のやり方を理解できたことに満足しています。しかし、Zend_Validate_Db_NoRecordExists() を編集フォームのコンテキストで使用する方法と、一意である必要があるデータベース列にマップするフィールドについて少し混乱しています。

たとえば、この単純なテーブルを使用して

テーブル テストに新しい行を追加するだけの場合は、データ フィールドの Zend フォーム要素にバリデーターを次のように追加できます。

フォームの検証時に、このバリデーターは Data 要素の内容がテーブルにまだ存在しないことを確認します。したがって、Test への挿入は、データ フィールドの UNIQUE 修飾子に違反することなく続行できます。

ただし、Test テーブルの既存の行を編集する場合は状況が異なります。その場合、バリデーターは、要素の値が相互に排他的な 2 つの条件のいずれかを満たすことを確認する必要があります。

  1. ユーザーが要素の値を変更しましたが、新しい値は現在テーブルに存在しません。

  2. ユーザーは要素の値を変更していません。したがって、値現在テーブルに存在します (これは問題ありません)。

Zend Validation Docsでは、検証プロセスからレコードを除外する目的で NoRecordExists() バリデーターにパラメーターを追加することについて説明しています。「一致する行を探してテーブルを検証しますが、フィールドにこの特定の値があるヒットは無視する」という考えです。このような使用例は、テーブルの編集時に要素を検証するために必要なものです。1.9 でこれを行うための疑似コードは次のようになります (実際、これは 1.9 のソース コードから取得したものです。現在のドキュメントは間違っている可能性があります)。

問題は、除外される値 ($Value) がインスタンス化された時点で (フォームがインスタンス化された時点でも) バリデーターにバインドされることです。ただし、フォームがレコードを編集している場合、その値は、フォームに最初にデータが入力されたときの $data フィールドの内容にバインドする必要があります。つまり、Test テーブルの行から最初に読み取られたデータ値です。しかし、典型的な Zend パターンでは、フォームは 2 つの別々のステップでインスタンス化され、入力されます。これにより、除外値を目的の要素値にバインドすることができなくなります。

次の Zend 疑似コードは、$Value を NoRecordExists() バリデーターにバインドする場所を示しています (これは Zend コントローラーの一般的なパターンであることに注意してください)。

Zend_Form をサブクラス化し、populate() メソッドをオーバーライドして、最初のフォーム作成時に NoRecordExists() バリデーターをワンショット挿入することもできますが、それは私には大きなハックのように思えます。だから私は他の人がどう思うか知りたかったのですが、この問題を解決するパターンがすでに書き留められていますか?

2009-02-04 を編集

この問題に対する適切な解決策は、カスタム バリデータを作成し、Zend バージョンを忘れることだけだと私は考えています。私のフォームには非表示フィールドとしてレコード ID があるため、テーブル名と列名を指定して、一意性をテストし、そのような ID を持つ行を除外する SQL を作成できます。もちろん、これにより、モデルが非表示にするはずの dB レイヤーにフォームを結び付ける方法について考えるようになりました。

0 投票する
2 に答える
1831 参照

php - Zend Db Select?参加*状態での置換

Zend_Db_Select'son句にパラメータ置換があるようには見えません。

私が次のようなことをすることができないのは非常に迷惑です:

では、流暢なインターフェース内で機能する慣用的な代替手段は何ですか?外側にjoin句を準備するようなこともできますが、それは重要ではありません。

0 投票する
1 に答える
8379 参照

sql - Zend フレームワーク zend_db_select オーダー

取得エラー:

メッセージ: SQLSTATE[HY093]: 無効なパラメーター番号: パラメーターがバインドされていません

問題は $select->order の行にあるようです。

結果の関連性のためです。Zend Framework でどのように見えるべきですか?

そして、検索に問題があるようです。検索する単語と検索しない単語があります。なぜこれがそのように機能するのですか?:Z

ありがとう

0 投票する
1 に答える
419 参照

mysql - 独自の mysql 接続を Zend_DB に渡す方法は?

特に Zend_DB で ZEND フレームワークを使用するまで、独自の mysql_connect ...etc を持っています。ZEND へのアダプタとして使用する接続を渡すにはどうすればよいですか?

0 投票する
2 に答える
1978 参照

mysql - Zend_db ジャンクション テーブル結合クエリ

なぜこれを理解できないのかわかりません。基本的に、多対多の関係を持つ 2 つのテーブルがあるため、その間にジャンクション テーブルがあります。

たとえば、次のデータベース スキーマを考えてみましょう。

そのため、多くのレストランでは多くの料理を提供できます。

私が構築しようとしているクエリは、郊外に存在するすべての料理を返します。SQL の例は次のとおりです。

これは私には理にかなっているようです。

Zend_Db を使用してこれを実装するにはどうすればよいですか?

0 投票する
3 に答える
6732 参照

zend-framework - Zend_Db_TableUTF-8文字

私のデータベースのテーブルは、次のような正しいUTF-8文字セットで作成されています。

ただし、Zend_Db_Tableを使用して、このメソッドでテーブルからデータをフェッチすると、次のようになります。

UTF-8文字がめちゃくちゃになっているオブジェクトを返します(iso-8859-1に変換されていると思います)。

phpmyadminでデータベースを調べると、すべての文字が正しく表示され、正しいエンコーディング(UTF-8)も表示されるため、どこに問題があるのか​​わかりません。

どうすればこの問題を解決できますか?

アップデート:

だから私はこれをしました、そしてそれはうまくいきます:

もっと良い方法はありますか?

UPDATE2:

私はこれを試しました:

そして、私はエラーを受け取ります:

0 投票する
1 に答える
149 参照

zend-framework - Zend_Auth - 迅速なインストール/使用のために Zend_DB を使用する必要がありますか?

Web サイトの認証「メカニズム」(コンポーネント) として Zend_Auth を使用することを考えています。ざっと見てみると、データベース テーブル認証には Zend_Db コンポーネントも使用する必要があることがわかりました。

誰かがこのアプローチを試しましたか? Zend_Auth を Web サイト (Web アプリケーション?) に統合するには、Zend_DB のメソッド/インターフェイスを使用および/または拡張/実装する必要がありますか?

独自の DB 抽象化レイヤーを Zend_Auth コンポーネントにプラグインし、それをデータベース テーブル認証に使用するように Zend_Auth に簡単に指示できますか? そのような解決策が努力する価値があるかどうかを理解しようとしています。

0 投票する
3 に答える
1433 参照

unit-testing - Zend Framework: Zend_Db でマッパーを単体テストするにはどうすればよいですか?

Zend_Db でマッパーをテストするにはどうすればよいですか? 私のモデルにはそれぞれ3つのクラスがあります:

  • モデル
  • マッパー
  • Db テーブル

ここに私のユニットテストがあります:

私はマシューの TestHelper を使用しています: http://github.com/weerophinney/bugapp/blob/master/tests/TestHelper.php

私が得るエラーはこれです:

Mapper が読み取られていないようです。この種のテストを行う方法を誰か教えてもらえますか? UnitTesting は初めてで、学習を始めたばかりです。

これは私のアーティストモデルです

これがアーティスト マッパーです。

Db_Table は次のようになります。

0 投票する
3 に答える
17183 参照

php - Zend DB fetchAll(): IN 演算子を使用した where 句の配列

次のクエリと同等のものを使用して、データベースからレコードを選択しています。

fetchAll() を呼び出す関数には、ユーザー ID の配列である引数があり、この呼び出しは問題なく機能します。

ただし、後でクエリに他の制限がある可能性が高いため、where句に配列を使用したいと思います...そして、一生それを理解することはできません。私はそれが次のいくつかのバリエーションになると思いました:

しかし、これまでのところサイコロはありません。誰かがここで正しい構文を提供できますか?

0 投票する
2 に答える
1438 参照

zend-framework - NOW() を使用して適切な UPDATE クエリを作成するには?

「UPDATE table SET date = NOW() WHERE id = 1」クエリを作成する方法は何ですか?

上記のコードは正しく動作しません。