Bonjour, j'essaie d'insérer des données dans la base de données, mais $ wpdb-> insert insère deux lignes.
mon code pour insérer des données est
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);
}
la taille de $ emails est 1 (si je suis en train d'insérer un identifiant d'email).
Où est-ce que je fais une erreur s'il vous plaît faites le moi savoir.
Essayez quelque chose comme ça
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;
}
Je suppose que $email
est un tableau contenant des données? Si vous voulez sauvegarder le tableau entier, vous devriez alors serialize()
le tableau.