我正在为WordPress制作推广工具,我正在向几个收件人发送简报。为了跟踪,所选的收件人将被添加到MySQL数据库中。
SQL中的每一行都有id
,newsletter_id
,recipient_id
和promocode
(随机生成)。
我的复选框数组称为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 .");");
}
有没有更好的方法来做到这一点?对解决方案的任何建议都会非常有用。
答案 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).";");