将复选框数组值添加到MySQL数据库中的多行中

时间:2014-09-08 19:12:16

标签: php mysql sql wordpress

我正在为WordPress制作推广工具,我正在向几个收件人发送简报。为了跟踪,所选的收件人将被添加到MySQL数据库中。

SQL中的每一行都有idnewsletter_idrecipient_idpromocode(随机生成)。

我的复选框数组称为recipients [],我需要在数据库中为每个收件人插入一行。我可以以某种方式进行动态SQL查询,我在一个查询中插入所有查询,或者我需要一个循环或什么来完成这个?到目前为止,这是我的代码,每个代码都有。

$checkboxes = isset($_POST['recipients']) ? $_POST['recipients'] : array();
foreach(checkboxes as $recipient) {
    $wpdb->query("INSERT INTO " .$wpdb->prefix ."send(newsletter_id, recipient_id, promocode) VALUES(" .$newsletter_id .", " .$recipient .", " .$promocode .");");
}

有没有更好的方法来做到这一点?对解决方案的任何建议都会非常有用。

1 个答案:

答案 0 :(得分:1)

首先,我们将按MarcB提到的那样准备一组值。然后我们只在循环外执行一次SQL Query。因此,这将是最快的方法和最快的加载时间。

试试这个

$checkboxes = isset($_POST['recipients']) ? $_POST['recipients'] : array();
$sql = array(); 
foreach($checkboxes as $recipient) {
    $sql[] = "(" .$newsletter_id .", " .$recipient .", " .$promocode .")";
}
mysql_query("INSERT INTO " .$wpdb->prefix ."send(newsletter_id, recipient_id, promocode) VALUES ".implode(",", $sql).";");