1

現在の DB クエリは行を上書きします。その行の列が変更された場合に新しい行を追加しようとしています。例を示しましょう。



これが行です。post_id がその ID の新しい行のように ID を変更したとき

行


これは、ID が変更されたときに発生することであり、上書きされます..代わりに、作成された新しい行のような ID..

ここに画像の説明を入力



データを INSERTS して UPDATES する関数は次のとおりです。

 //This is the INSERT
 // Execute query
        $wpdb->query(
            $wpdb->prepare("INSERT INTO $table_name
                                (post_id, name, data, date_c, date_m)
                            VALUES (%d, %s, %s, %d, %d)",
                            '',
                            '',
                            time(),
                            time()
                            )
        );


  //This is the UPDATE
  // DB data
    $post_id = $wpdb->escape($alldata['postid']['thepostid']);
    $name = $wpdb->escape($alldata['properties']['title']);
    $data = $wpdb->escape(json_encode($alldata));

    // Update
    $wpdb->query("UPDATE $table_name SET
                post_id = '$post_id',
                name = '$name',
                data = '$data',
                date_m = '".time()."'
              ORDER BY id DESC LIMIT 1");

これは送信機能です。フォームが送信されると、行が挿入または更新されます。NEW post_id INSERT NEW row ... 誰かがそのクエリを書いていくつかを与えるのを手伝ってくれることを願っていますアドバイス...

アップデート:

 <form action="<?php echo $_SERVER['REQUEST_URI']?>" method="post" class="wrap" id="ls-slider-form">  

    <input type="hidden" name="submitted" value="1">


             <!-- Global Settings -->
        <div class="ls-page ls-post-id" style="display: block;">
        <div id="post-body-content">
           <div id="titlediv">
               <div id="titlewrap">
                   <input type="text" name="thepostid" value="<?php echo the_ID() ?>">
               </div>
           </div>
        </div>
    </div> 

  <input type="submit" /> 

 </form>


function brash_add_settings() {


     // Add slider
if(isset($_POST['submitted'])) {

    // Get WPDB Object
    global $wpdb;

    // Table name
    $table_name = $wpdb->prefix . "brash";


        // Execute query
        $wpdb->query(
            $wpdb->prepare("INSERT INTO $table_name
                                (post_id, name, data, date_c, date_m)
                            VALUES (%d, %s, %s, %d, %d)",
                            '',
                            '',
                            time(),
                            time()
                            )
        );

        // Empty slider
        $alldata = array();

        // ID
        $id = mysqli_insert_id();


        $alldata['properties'] = $_POST['alldata']['properties'];
        $alldata['postid'] = $_POST['brash-post-id']['postid'];


    // DB data
    $post_id = $wpdb->escape($alldata['postid']['thepostid']);
    $name = $wpdb->escape($alldata['properties']['title']);
    $data = $wpdb->escape(json_encode($alldata));

    // Update
    $wpdb->query("UPDATE $table_name SET
                post_id = '$post_id',
                name = '$name',
                data = '$data',
                date_m = '".time()."'
              ORDER BY id DESC LIMIT 1");

    // Echo last ID for redirect
    echo $id;

    die();
}



 }
4

1 に答える 1