web-dev-qa-db-ja.com

$ wpdb-> insertデータベースに2行挿入

こんにちは私はデータベースにデータを挿入しようとしていますが、$ wpdb-> insert 2行挿入します。

私の挿入データのコードは

global $wpdb;
    $tablename = $wpdb->prefix . '<TABLE NAME>';
 for ($i = 0; $i < sizeof($emails); $i++) {

                $data = array("post_id" => $post_id,
                    "user_id" => $user_id,
                    "email" => $emails[$i], 
                    "status" => 1
                    );
                     $wpdb->insert($tablename, $data);

        }

$ Eメールのサイズは1です(私が1つのEメールIDを挿入している場合)。

どこで間違えているのか教えてください。

2
Bushra Shahid

このようなことを試してください

function insert_data_into_table () {
        global $wpdb;
        $table_name = $wpdb->prefix . "your_table_name";

        //Check if table exists
        if($wpdb->get_var("show tables like '$table_name'") != $table_name) :

            //if not, create the table   
            $sql = "CREATE TABLE " . $table_name . " (
            (...)
            ) ENGINE=InnoDB;";

            require_once(ABSPATH . 'wp-admin/includes/upgrade.php');
            dbDelta($sql);
        else:
          foreach($emails as $mail):
              $insert = "INSERT INTO  " . $table_name . "
                (post_id, post_id, email, post_id) 
                VALUES ($post_id, $user_id, email['content'], 1);"
              $results = $wpdb->query( $insert );
          endforeach;
        endif;
    }

$emailはデータを含む配列だと思いますか?配列全体を保存したい場合は、配列をserialize()する必要があります。

1
Steven