バウンスされたすべての電子メールは、データベースのテーブルに送信されます。それらを、アクティブな電子メールが入力されている別のテーブルのフィールドと比較しようとしています。次の関数を使用すると、「IN」を使用した場合は何も返されず、「NOT IN」を使用した場合はすべて返されますが、2つのテーブルに一致する電子メールがあることはわかっています。私はこれを間違った方法で行っていますか?
<?php
function CompareEmails() {
$mysqli = new mysqli(DB_HOST, DB_USERNAME, DB_PASSWORD, DB_NAME);
if ($mysqli->connect_errno) {
echo "Failed to connect to MySQL: (" . $mysqli->connect_errno . ") ";
echo $mysqli->connect_error;
$mysqli->close();
}
$bademails = array();
$values = $mysqli->query("SELECT bad_emails.emails FROM bad_emails ");
while ($row = $values->fetch_assoc()) {
$bademails[] = $row['emails'];
}
$query = "SELECT email_database.customer_id, email_database.email
FROM email_database
WHERE email_database.email IN('" . implode("' , '", $bademails) . "')
ORDER BY email_database.customer_id DESC";
$values2 = $mysqli->query($query);
while ($row2 = $values2->fetch_assoc()) {
echo $row2['customer_id'] . " " . $row2['email'] . "</br>";
}
}
?>