1

OK、それで私はについて読みましたdrupal_write_record、それは明らかにinsert_or_updateを行う関数として機能します。

しかし、私が読んだことから、挿入を行うか更新を行うかはそれ自体ではわかりませんが、これは3番目のパラメーターの存在(または存在しない)によって決定されます。$primary_keysデフォルトはarray()。です。これは本当ですか?最初にレコードを選択し、存在するかどうかを確認してから、3番目のパラメーターを渡すかどうかを指定する必要がありdrupal_write_recordますか?

私が通常挿入または更新機能を実行する方法は主キーに基づいて選択を実行することであり、行が存在する場合は更新を実行する必要があるため、これを求めています。存在しない場合は挿入を実行する必要があります。これはうまくいく方法ではありませんdrupal_write_recordか?

ちなみにDrupal7.0を使用しています。

4

1 に答える 1

1

ドキュメントによると:

$ primary_keys:これが挿入される新しいレコードであることを示すには、この引数を省略します。これが更新の場合、この引数は主キーのフィールド名を指定します。キーにフィールドが1つしかない場合は、文字列を渡すことができます。キーに複数のフィールドがある場合は、配列を渡します。

ソース:drupal_write_recordAPIドキュメント

3番目のパラメータ$primary_keys--が主キーのフィールド名を持つ配列である場合、既存のレコードを更新しようとします。値$primary_keysを省略すると、デフォルトで空の配列になります。これは、独自の一意のIDを持つ新しいレコードを挿入することを意味します。

于 2012-06-12T15:56:15.243 に答える