こんにちは私はデータベースにデータを挿入しようとしていますが、$ 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を挿入している場合)。
どこで間違えているのか教えてください。
このようなことを試してください
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()
する必要があります。