Generell finde ich SQL mit Quoting besser:
/**
* @param array $customer
* @return array
*/
private function newsletterSubscribe(array $customer)
{
if (!isset($customer['newsletter'])) {
return $customer;
}
if (empty($customer['newsletter'])) {
$sql = 'DELETE FROM s_campaigns_mailaddresses
WHERE email = ?';
$this->db->query($sql, [$customer['email']]);
} else {
$customer['newslettergroupID'] = $this->getNewsletterGroupId($customer['newslettergroupID']);
$sql = 'SELECT id
FROM s_campaigns_mailaddresses
WHERE email = ?';
$result = $this->db->fetchOne($sql, [$customer['email']]);
if (empty($result)) {
$sql = "INSERT INTO s_campaigns_mailaddresses (customer, groupID, email)
VALUES (?, ?, ?);";
$this->db->query($sql, [1, $customer['newslettergroupID'], $customer['email']]);
}
}
return $customer;
}