0

私は drupal を初めて使用するので、助けが必要です。イベントのトリガーでPHP コードを実行する RULE を作成しようとしています。(正常に動作しています。イベントがトリガーされます)

カスタム コンテンツ タイプを作成しました。このコンテンツ タイプにいくつかのコンテンツを追加しました。今、そのPHP コードでこれらのコンテンツを更新しようとしていますが、機能していません。

私のクエリは次のとおりです。

$ctag = $ctag+1;

db_query("UPDATE {content_type_phone_user} SET field_puser_ctag_value=%d WHERE nid=%d", $ctag, $puser['nid']);

そして、ここで奇妙なことに気づきました。

上記のコードは初めて機能します。ただし、再試行しても、テーブルの列は更新されません。

しかし、管理者としてログインし、このコンテンツ タイプの [保存] ボタンをクリックするだけで (変更を加えずに)、この PHP スクリプトを再度実行しようとすると、データベースが更新されます (ただし、機能するのは一度だけであり、毎回上記のプロセスを実行する必要があります)。

私を助けてください。

4

1 に答える 1

0

やっと答えを見つけることができた、

クエリを記述する代わりに、更新しようとしているノードをロードするだけです。

$node = node_load(nid);

更新が必要な列に新しい値を設定するよりも

$node->field_dm_puser_ctag[0]['値'] = $ctag;

を使用してこのノードを保存するよりも

node_save($ノード);

これは更新クエリと同等です。

万歳:)

于 2012-11-11T21:25:33.387 に答える