やりたいこと
- DBに同じ値がある場合はUPDATEし、ない場合はINSERTすること
- ON DUPLICATE KEY UPDATEを使えば良いと理解したが、WordPressで実装する方法が分からない
現在のコード
php
1 $wpdb->insert( 2 "example_database", 3 array( 4 "post_id" => $postId, 5 "aid" => $aId, 6 "name" => $name, 7 "pref" => $pref, 8 "area" => $area, 9 "latitude" => $latitude, 10 "longitude" => $longitude, 11 "identification" => $identification 12 ) 13 );
INSERTは問題なく動作しています。
同一レコードがある場合はINSERTではなく、UPDATEさせたいです。
WordPressの仕様ではありますが、どのようにすれば良いでしょうか?
ご存知の方がいたら、ご教示して頂けると幸いです。
追記
php
1 $wpdb->query( 2 $wpdb->prepare( 3 " 4 INSERT INTO $wpdb->wp_acm_data 5 (post_id, acm_id, name_of_acm, pref_name_of_acm, area_name_of_acm, latitude_of_acm, longitude_of_acm, identification, sale_cd_of_acm) 6 VALUES 7 (%d, %d, %s, %s, %s, %s, %s, %d, %d) 8 ON DUPLICATE KEY UPDATE 9 post_id = $postId, 10 acm_id = $acmId, 11 name_of_acm = $nameOfAcm, 12 pref_name_of_acm = $prefNameOfAcm, 13 area_name_of_acm = $areaNameOfAcm, 14 latitude_of_acm = $latitudeOfAcm, 15 longitude_of_acm = $longitudeOfAcm, 16 identification = $identification, 17 sale_cd_of_acm = $saleCdOfAcm 18 ", 19 array( 20 $postId, 21 $acmId, 22 $nameOfAcm, 23 $prefNameOfAcm, 24 $areaNameOfAcm, 25 $latitudeOfAcm, 26 $longitudeOfAcm, 27 $identification, 28 $saleCdOfAcm 29 ) 30 ));
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2017/05/30 02:48
退会済みユーザー
2017/05/30 03:26
2017/05/30 03:57
退会済みユーザー
2017/05/30 12:37
2017/05/31 07:32
2017/05/31 07:32
2017/05/31 07:50
2017/05/31 08:56