問題タブ [codeigniter-datamapper]
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 - CodeIgniter と ORM (データマッパー)
私はphpとcodeigniterは初めてですが、パイロンとsqlalchemyの経験があります。
そこでモデルクラスを定義し、「paster setup-app development.ini」などのコマンドを使用して (paster?) テーブルを作成し、SQL コードを記述する必要はありません...
私はこれを codeigniter と datamapper で試していましたが、これが可能かどうかはわかりません。だからここで私はあなたにそれが可能かどうか尋ねていますか?
「models/」には独自のクラスを配置できるため(sqlalchemyのように)、私は非常に混乱しています。これらのクラスでは、すべての属性、関係、およびその他のものを定義します。では、なぜ同じことを 2 回書く必要があるのでしょうか。(このクラスで 1 位、SQL スクリプトで 2 位)
php - CodeIgniter と DataMapper ORM
サンプル バグ アプリケーションにある基本的なログイン マネージャーを使用していますが、メインの管理コントローラーには現在約 25 の関数があり、呼び出す必要があるすべての関数の開始時に
このチェックをすべての関数で自動的に実行する簡単な方法はありますか、それとも MY_Controller ルートを下ってそこから継承する必要がありますか。
私の現在のコンストラクタは次のようになります
codeigniter - CodeIgniter 最初の接続に database.php を使用し、2 番目の接続に Model を使用して複数のデータベースを接続する方法
多くのデータベース接続があります。database.php ファイルにプライマリ接続があります。
さらに多くの接続があります..しかし、[モデル]を使用して別の接続を構成する必要があります
パラメータを database.php に渡すことはできますか?
または、このコードのようにモデルに配置できますか
codeigniter - ミューナル接続データベースCodeIgniter
多くのデータベースにdatabase.phpのプライマリ接続を接続する必要がありますが、問題はありません。
ただし、別の接続はモデルに含まれている必要があります
私はこのクラスを使用します
ただし、接続は機能しませんが、プライマリデータベースに接続します
エラー番号:1146テーブル'countries.ci_users'は存在しません
注:100を超える接続があるため、database.phpファイル内の別の接続を使用するつもりはありません。
php - CodeIgniter DataMapper は遅いですか?
私は Codeigniter を使用してリレーショナル データベースに取り組んできましたが、DataMapper は深刻なプロジェクトには役に立たないことがわかりました。Codeigniter の Active レコードは、多対多または 1 対多の方法論も提供しないため、役に立ちません。DataMapper は遅く、構成できません!
- クエリを実行すると、テーブル全体がオブジェクトに読み込まれます。
- 最初に「A」を入力すると、2 回目に「A」を入力すると、データベースに 2 つの As が存在します。SQL のような無視オプションはありません。また、アイテムが存在するかどうかを確認するためにクエリを実行し、存在しない場合は挿入する必要があります。
- 彼らはそれのために多くのコーディングを行いましたが、巨大なデータベースを作成するのには適していないようです
- クエリは高速ではありません。
それはコミュニティ内のコンセンサスのようです。php で純粋な mysql を使用して、多対多および 1 対多の操作を行うことをお勧めしますか? それとも私が間違っていると思いますか!その上でお気軽にご相談ください。私の質問は、プロの Web デザイナーとしてデータベースを作成するために何を使用していますか?
php - Datamapper ( city ) のテーブルの名前に関するエラー
codeigniter の datamapper に City というモデルがあります。データマッパーはテーブルの名前を複数形で想定しているため、テーブルの名前を「都市」のままにしました。コントローラーでモデルのオブジェクトを作成すると ( $c = new City(); ); 次のエラーが表示されます: Call to a member function where() on a non-object in C:\wamp\www\project\application\controllers\userhome.php 行 61 。
これは私が使用したモデルです
モデルでわかるように、今のところコメントした変数にテーブル名を割り当てようとしました。私もそれでエラーが発生しました。
これらは、コントローラーで使用しているコードです。
私を助けてください。前もって感謝します...
php - 配列はphpの最後の要素によって上書きされます
格納される結果$g
は 1 と 2 です。以下に記述した次のコードでは、最後の要素である$array['music']
2 のみを格納します。$g
and 2 with mu_id
(mu_id
は別のテーブルの列名music
) で、1 行目と 2 行目のすべての行データを to に格納し$array['music']
ます。
1行目ではなく2行目(2)のみ格納しているか、ループ内で2回目の実行時に上書きしています。それを機能させるためのロジックがあれば、私に知らせてください。
php - 重複の回避 datamapper コード イグナイターでのデータベース レコード
私の質問は、メインテーブル(ブック)に重複するエントリを挿入せずに結合テーブル(user_book)にデータを挿入する方法です。
主に、以下にツリーテーブルがあると考えてください
しかし、問題は、Books テーブルに存在する新しい本 (B3 のようなマイクなど) を挿入するときです。複製が books テーブルに表示され、上記のテーブルは次のようになります。
私が解決しようとしていることは今意味がありますか?それとも、書籍の一意のリストをまったく作成できないのでしょうか?
データベースユーザーとブックユーザー<--->ブックがusers_booksによって関連付けられている場合、ブックレコードをデータベースに挿入するときに、それが重複していないことを確認する必要があります。さらに、ブックが存在する場合は、ブック レコードではなくリレーションが挿入されます。どうすればそれができますか?1つのアプローチは言うことです
"books" テーブルに (book->exist) がある場合は、関係をチェックして、ユーザーと本の間に関係があるかどうかを確認し、存在する場合は挿入しないでください。さらに、これを回避するには、mysql db 構造内の何かを変更する必要がありますか?
上記のコードは機能していませんが、私が話していることを理解できるはずです。
アップデート:
要約すると、2 人のユーザーが同じ本を気に入った場合、レコード (本) を結合テーブル (users_books) に挿入するだけで、テーブルに新しいレコードを作成する必要はありません。一意の sql タグを使用すると、一意のリストが保持されるため機能しませんでしたが、結合テーブル users_books に複数の関係を挿入することはできません。
php - Datamapperを使用したCodeigniterでのクエリによって返された行数をカウントする方法
codeigniterのコントローラーで次のクエリを使用しています。
上記のコードでは、「$ u」は、データベースのテーブル名が「users」であるデータマッパー「User」のクラス「User」のオブジェクト名です。クエリの実行後に返される行数を確認したい。「$total」は、ユーザーIDとパスワードが一致していなくても、常に1を表示します。私が欲しいのは、行数が1を返した場合は「OK」、それ以外の場合は「何かが間違っている」ということです。私はその基本を知っていますが、誰かがそれを知っているなら、私を助けてください。前もって感謝します。