私はクライアントのためのWordPressのインストールに取り組んでいます。 彼が選んだ電子商取引のプラグインはWordpressユーザーとうまく統合できません。 新しいユーザーレコードがwordpressで作成されたときに、プラグインのユーザーアカウントシステムに新しいレコードを挿入しようとしています。 私には、挿入前にユーザーデータをプラグインテーブルにコピーするwp_usersテーブルのトリガがそのトリックを行うように思えました。十分に簡単です。 しかし、私のテストでは、何もするwp_usersテーブルトリガーを取得することはできません。新しいユーザーアカウントの作成がハングアップし、トリガーイベントが挿入前または挿入後の場合、データがwp_usersに挿入されなくなります。更新前に指定すると、wp_usersではデータ挿入が許可されますが、Pluginテーブルでは挿入できません。 トリガーを正しく実行したことがありません。このMySQLトリガーが正しく実行されないのはなぜですか?
DROP TRIGGER IF EXISTS `user_update`//
CREATE TRIGGER `dbname`.`user_update`
AFTER INSERT
ON `wp_users` FOR EACH ROW
BEGIN
INSERT INTO `test_data_dump` (`username`, `password`, `email`, `first_name`, `created_at`) VALUES(user_login, user_pass, user_email, user_nicename, user_registered);
END
任意の洞察力がimmensley役立つだろう: はここに私のコードです。
投げるエラーをあなたが新たに挿入されたデータを参照しているときに言葉
new
を使用する必要があります... insert文にold.usernameなどを指定する必要がありますか? – user1267382UPDATEには 'old'がありますが、INSERTトリガにはありません。 – CAbbott
それから構文エラーなしで保存するためのトリガーを取得することさえできないので、私はあなたがこれをどうやって行うのか尋ねるでしょう。私はdbname.'semics5_test_data_dump'( '' username' INTO INSERTをBEGINにDROP TRIGGER IFがEACH ROW FOR semics5_users' 'ON INSERT AFTER' user_update_trigger' // が dbname'.'user_update_trigger' 'CREATE TRIGGERをEXISTSを使用していますtyring 、 'password'、' email'、 'first_name'、' created_at')VALUES(new.user_login、new.user_pass、new.user_email、new.user_nicename、new.user_registered); END //; – user1267382