問題タブ [zend-db-table]
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.
php - Zend Framework:Zend_Db_Table_Rowsetオブジェクトのデータ行の設定を解除する方法
Zend_Db_Table_Rowsetオブジェクトに格納されているデータ行を繰り返し処理し、特定の基準を満たしていない場合は、一部の行を削除/設定解除したいと思います。
toArray()を使用して、オブジェクトからデータ行のみを取得すると、不要な行の設定を簡単に解除できます。しかし、私は自分のオブジェクトをさらに使用するために保持したいので、それはしたくありません。
もちろん、1つの解決策は、必要なものだけを取得するようにクエリを調整することですが、このシナリオではそれは不可能です。少なくとも私には方法がわかりません。
うまくいかなかった次のことを試しました:
そしてもちろん、$ rowset [$ key]がないため、機能しません...データはサブ配列[_data:protected]に保存されますが、unset $ rowset [_data:protected][$key]は機能しませんでしたどちらかで動作します。
たぶん、行セットオブジェクト(または一般的なオブジェクトの表現)の私の概念は、私が何をしているのかを理解するのに十分成熟していません。説明やヒントは大歓迎です!
[編集]$row-> deleteはオプションではありません。データベースから行を削除したくありません!最初に配列を作成したくありません。必要な場合は、$ rowset-> toArray()[/EDIT]を実行するだけです。
解決策:私もできなかったと思ったことを実行することになりました。つまり、すべてを最初のクエリに統合しました。
php - Zend_Dbで複数の行を追加するにはどうすればよいですか?
私は多かれ少なかれこのように見える情報を持つ配列を持っています:
そして、両方のエントリをデータベースに追加したいと思います。
両方のエントリを追加しません。私は何が間違っているのですか?Zend_ Db_Tableを使用する必要がありますか?
もちろん動作します
zend-framework - Zend_Db_Table_Abstract クラス内から永続的に使用するようにデータベース アダプタを設定できますか?
私のサイトでは、他のサイト固有のデータベースに関連する中央ユーザー データベースを含む 2 つのデータベースを使用しています。
呼び出すだけで十分な場合もありますnew User(array('db'=>'adapter1'));
(ただし、決して便利ではありません)。ただし、異なるデータベースのテーブル間の関係を宣言する場合など、これを行う方法はありません。
Zend_Db_Table_Abstract クラス内から使用するデータベース アダプタを指定する方法を知っている人はいますか?
ありがとう!
php - Zend DB - Count(*) が機能しない
私の sql ステートメントは Zend で動作しません。Count(*) フィールドについて不平を言っています...何が間違っていますか?
そしてエラー...
php - Zend_View_Helper_Action ウィジェットを、Zend_Controller_Action_Helper_FlashMessenger を利用してモデルにリファクタリングする
ログインが必要なアプリケーションのコンテンツの外にあるアクションに自由に含めることができるログイン ウィジェットを作成しようとしました。ここでの私の考えは、以前のログイン試行からのエラー メッセージを含むログイン ボックスをレンダリングするための DRY アプローチが必要であるということでした。これを有効にするために、失敗したログイン試行の結果を保存するためにFlashMessengerを利用しました。また、ウィジェットはPost/Redirect/Get パターンを使用して、ブラウザーの戻るボタンを使用するときにデータを複数回投稿する問題を回避します。
ここでの問題は、Zend_View_Helper_Actionを使用したくないということです。Zend_View_Helper_Action ヘルパーはリクエストを複製し、ディスパッチ ループの別の実行を作成するため、かなりリソースを消費します。それでは、以下のコードを見て、次のようにコードをリファクタリングする方法についてアドバイスをいただけないでしょうか。
- ウィジェットは任意のビュー スクリプトに含めることができます
- 前回のログイン試行の結果が表示されます
- ウィジェットがディスパッチ ループで実行を呼び出さない
現在、ログイン ウィジェットは、ビュー スクリプトで以下を呼び出すことによってレンダリングされます。
AuthController.php:
/models/Auth.php:
/models/Auth/Adapter/DbTable.php:
/views/scripts/auth/partials/login-widget.phtml
/application/configs/forms.xml
php - Zend_Db クラスによる MySQL インジェクションの回避
現在、Zend_Db を使用してクエリを管理しています。以下のようなクエリを実行するコードを既に書いています。
Zend_Db がサニタイズすると仮定して、入力をサニタイズせずにこれを行いました。Zendはこれを行いますか?
別の質問: Zend_Db はサニタイズinsert('table', $data)
とupdate
クエリを実行しますか?
ありがとう。
zend-framework - zend-framework出力Zend_Db_Tableのselect()ステートメントで生成されたクエリ
目的をテストするためにZend_Db_Tableのselect()ステートメントによって生成されたクエリを出力したいのですが、方法がわかりません。
php - 列名でソートされたMySQLランダム行
元の質問:
現在、でZend Frameworkを使用してZend_Db_*
おり、テーブルから3つのランダムな行を選択しています。
はどこ$category
にありますかZend_Db_Table_Row
。3つのランダムな行を取得したいのですが、これらの3つの行を。という名前の列の順に並べていますname
。
を次のように変更し->order()
ても効果はありませんでした。
エントリはまだ順序付けられておらず、ランダムに表示されているためです。
Zend Frameworkソリューションは高く評価されていますが、プロジェクトに適合するように他のソリューションを適応させることができます。
RAND()の使用に伴うスケーリングの問題を認識しています。データベースが問題になるほど大きくなることはありません。データベースを維持することを心配する必要はありません。ロボットは、これから説明します。長く死んでください!:-P
答え
これがZend_Db_Selectを使用して最終的にどのように完了したのか疑問に思っている人のために、これはZend_Db_Select内のサブ選択を使用することになったものです($category->findDefault_Model_projects()
依存する行セットを見つけるために使用していましたが、select()をZF-6461が問題を修正するまで副選択します、私は私が持っているもので立ち往生しています):
生成されるSQLは次のとおりです。
そこから、$ projectsには、他のデータベースクエリと同じように繰り返すことができる標準の行セットが含まれていますが、それを行わないのは、テーブル固有の行/行セットクラスに固定することだけです。
zend-framework - Zend_Db_Table_Abstract による WHERE 句のグループ化
Zend_Db で where 句をグループ化する方法を知っている人はいますか? 基本的に私はこのクエリを持っています
これは私にこれを与えています:
しかし、OR ステートメントがグループ化されている場合は、次のようにする必要があります。
php - Zend Framework でテーブル クラスを使用せずに新しい行を作成するにはどうすればよいですか?
クラス Users extends Zend_Db_Table_Abstract とクラス User extends Zend_Db_Table_Row_Abstract を使用して、Users の $_rowClass プロパティを User に設定できることを理解しています。
新しい行を作成して保存するには、次の方法しか知りません。
代わりに次のことを行う方法を教えてもらえますか?
補足として、次の構文を使用して特定の行を取得することも検討しています。
ただし、これは新しいユーザーを作成しようとしているのではなく、既存のユーザーを取得しようとしていることを考えると、次の構文の方が読みやすいと思います-どう思いますか?