タグ付けされた質問 「database」

Drupalは、データベースサーバーにアクセスするための、ベンダーに依存しない標準の抽象化レイヤーを提供します。

1
db_insertは安全ですか?
Drupal 7のメソッドdb_insertを使用して、Drupalデータベースのカスタムテーブルにデータを挿入しています。私はこれが好ましい方法であることを読みましたが、コードとdocoを調べたところ、値を解析する場所や、これらの値が安全であることを教えてくれる場所がどこにもありません。 一部の値はユーザーから取得されるため、SQLインジェクション攻撃をチェックする必要があります。 これは私が読んでいた例で、Drupal 6は値を解析しますが、Drupal 7バージョンは解析しません。 <?php // Drupal 6 version db_query('INSERT INTO {vchess_games} (gid, timestamps, white, black, state, board_white, board_black) ' . "VALUES ('%s', '%s', '%s', '%s', '%s', '%s', '%s')", $gid, $timestamps, $game['white'], $game['black'], $state, $board_white, $board_black); // Drupal 7 version db_insert('vchess_games') ->fields(array( 'gid' => $gid, 'timestamps' => $timestamps, …

2
db_select()を使用して2つのテーブルからフィールドを選択します
私は使用db_select()していますが、fields()メソッドの構文を理解していません。join()別のテーブルを結合するためにa を使用しています。だからテーブルtとn、私は次のようなことをしたい SELECT t.tid, t.field1, t.field2, n.title, n.author FROM table t INNER JOIN node n ON t.nid = n.nid; 私が持っています $results = db_select('table', 't') ->fields( ... ) ->join('node', 'n', 'n.nid = t.nid') ->execute(); しかし、あなたが見ることができるように、私はで迷っているfields()。私が見た例では、1つのテーブルのフィールドのみを指定しています。 ->fields('t', array('tid', 'field1', 'field2')) 使用したい構文は何ですか?
15 database 



4
モジュールのhook_update_nステータスのリセット
私は以前に書いたモジュールを拡張していますが、いくつかのスキーマの変更が必要hook_update_Nです。 モジュールのバージョンをから7.x-1.0に更新し7.x-1.1て実装しましたがfoo_update_7100、正常に動作します。 問題は、私が内部foo_update_7100でミスを犯し、それを修正したため、7100アップデートを再実行できないことです。7101を作成する必要がありますが、私のすべての変更がまだコミットされていないため、それは意味がありません。 私はhook_update_nのステータスを次の方法でリセットしようとしました: update system set schema_version=-1 where name='foo'; > Query OK, 1 row affected (0.01 sec) > Rows matched: 1 Changed: 1 Warnings: 0 それから私はやるdrush cc allが、drush updatedb -yまだ私「不要データベースの更新」を与えます。 単にhook_update_N数字を増やすのではなく、どうすればこれを解決できますか?
14 7  database  updating 

1
「count」および「having」プロパティを使用してDrupal 7クエリを作成する方法
次のクエリをdrupal7標準で機能させることはできません。誰も私を助けることができますか?その少し緊急... SELECT n.nid AS nid, n.title AS title, count(n.title) AS ncount FROM node n INNER JOIN taxonomy_index tn ON n.nid = tn.nid WHERE (n.type = 'test') AND (tn.tid IN( 23,37)) AND (n.title LIKE '%name%') AND (n.status = 1) GROUP BY n.nid HAVING ncount = 2
14 7  hooks  database 

3
t()を介して変数を渡すのは常に悪いことですか?
hook_schemaのヘルパー関数が少しあります: function _bbcmap_schema_asr_field($description) { return array( 'type' => 'int', 'unsigned' => TRUE, 'size' => 'small', // Up to ~66k with MySQL (equivalent up to ~660.00 adjusted) 'not null' => FALSE, 'description' => t($description), ); } そして、私はそれを次のように使用できます: /** * Implements hook_schema(). */ function bbcmap_schema() { $schema['la_data'] = array( 'fields' => array( …

3
NoSQLと他のSQL Drupalセットアップ
DrupalでMySQL、PostGRE SQL、MSSQLよりもNoSQL(MongoDBなど)を実行する利点は何ですか?ストレージを使用するだけで得られる利点はありますか、それともDrupalの構成を変更する必要がありますか?
14 7  database 

3
複数の値を持つエンティティフィールド条件でクエリを実行する
ユーザーがそのフィールドに複数の分類用語を追加できるエンティティ参照フィールドを持つコンテンツタイプがあります。そのフィールド内に特定の分類用語のセットを持つノードを取得するクエリを実行しようとしています。 そのフィールドで1つの値を使用すると、うまく機能します。 $query = \Drupal::entityQuery('node') ->condition('status', NODE_PUBLISHED) ->condition('type', 'custom_type') ->condition('custom_taxonomy', 2) ->sort('field_last_name', DESC); ここで、2は検索する用語のIDです。ただし、そのような2つの特定の用語を含むノードを検索しようとすると、 $query = \Drupal::entityQuery('node') ->condition('status', NODE_PUBLISHED) ->condition('type', 'custom_type') ->condition('custom_taxonomy', [2,8]) ->sort('field_last_name', DESC); エラーが表示されます 無効なパラメーター番号:バインドされた変数の数がトークンの数と一致しません: 私も試みました $query = \Drupal::entityQuery('node') ->condition('status', NODE_PUBLISHED) ->condition('type', 'custom_type') ->condition('custom_taxonomy', [2,8], 'IN') ->sort('field_last_name', DESC); これは失敗しませんが、意図した結果を提供しません。これは、どちらかの用語2持っているすべてのノードが表示さOR代わり項2の期間8 と意図される用語8を。ノードのエンティティ参照フィールドに複数の特定の値があるかどうかを確認するクエリを実行するにはどうすればよいですか?
14 8  entities  database 

3
MysqlをMariaDBに切り替えると、どのような問題が発生しますか?Drushの問題はありますか?
私は重い持っているMySQLの Drupalの7サイトを、私は、スイッチングを考えていたMySQLをする上でMariadbが、私は私がに実行するだろうか問題わかりませんでした。私が読んでいるものから、Mariadbのための代替でちょうど低下であると考えられるのMysqlとをいじることがあまりいないようです。Mariadbがブラシコマンドに影響を与えるかどうか疑問に思っていましたか?
13 7  drush  database 

2
hook_schema()でmysqlの日付または日付時刻フィールドを正しく実装する方法は?
データベースにテーブルを作成するためのスキーマ定義を含むmymodule.installファイルを作成しました。このテーブルには2つのデータフィールドが含まれます。これらのフィールドは、ユーザーが特定のコンテンツを入力するときに入力されます(例:ニュースの公開日を指定する)。今、私は意図的にDate寄贈されたモジュールを使用しませんでした。他の理由で、これら2つのフィールドがデータベーステーブルの同じ行にある必要がありました。 hook_schemaは、次のように2つのフィールドを定義します。 'pubblish_date' => array( 'description' => t('The pubblish date for the single news'), 'mysql_type' => 'datetime', 'not null' => FALSE, ), 'unpublish_date' => array( 'description' => t('The unpublish date for the single news'), 'mysql_type' => 'datetime', 'not null' => FALSE, ), テーブルはデータベースに正しく作成されますが、私は常にこれらのアドバイスメッセージを受け取ります: フィールドnews_board.pubblish_date:mysqlタイプdatetimeのスキーマタイプはありません。フィールドnews_board.unpublish_date:mysqlタイプdatetimeのスキーマタイプはありません。news_board.pubblish_date:スキーマタイプにタイプはありません:normal。フィールドnews_board.pubblish_date:typeのスキーマタイプはありません。news_board.unpublish_date:スキーマタイプにタイプはありません:normal。フィールドnews_board.unpublish_date:typeのスキーマタイプはありません。 私には奇妙に思えますが、mysqlデータベースにdatetime形式を保存するためにmysql_type仕様を使用するためにドキュメントを読みました。 Drupalはネイティブにタイムスタンプをサポートしているため、別の日付形式を保存する場合は、データベースyuoが使用しているmysql_typeやpgsql_typeなどの特定の定義を使用する必要があります。 議論の中で、多くの人がmysql_type定義を使用していて、私が見たところ、問題を解決したことがわかりました。 どうもありがとう。

5
キャッシュフォームテーブルのサイズは膨大です
キャッシュテーブルのサイズは先月10 GB以上に増加し、切り捨てて一時的に修正しました。前回確認したときは、約1GBでした。したがって、数か月後には再び10GBに達するでしょう。これはどのように対処する必要がありますか? このサイトですべてのcronジョブを無効にしていることに注意してください。これが理由である場合、どのcronを有効にする必要がありますか?
13 database  caching 

3
フィールドリビジョンテーブルを切り捨てても安全ですか?
D7はすべてのフィールドに対してfield_revisionテーブルを作成し、リビジョンがオフになっている場合でも、フィールドテーブルの対応するコンテンツを複製することに気付きました。 大きなテキストテーブルがあり、多くのスペース(数GB)を使用しています。 リビジョンテーブルを切り捨てても安全ですか? PS:一方、私はこれをバグとして報告しました。
13 7  entities  database  nodes 

7
データベースに直接新しいユーザーを追加する
新しいテーマを作成できるように、Drupalサイトにファイルを提供しました。ただし、Drupalの管理者ユーザー/パスワードの日付が渡されていないため、管理者エリアにサインインできません。データベースに直接新しいユーザーを作成する方法や他の方法はありますか?
13 6  users  database 


弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.