0
這是我第一次使用MySQL enum數據類型,所以我真的不知道如何正確插入這種類型的數據。我有一個表包含一個列有枚舉類型(狀態欄),當我在這個表中插入一行時,狀態欄將包含一個值並不是說我插入,例如:插入MySQL枚舉列設置錯誤數據
define('INVALID_EMAIL_ADDRESS', 0);
define('EMAIL_EXIST', 1);
define('NO_MX_RECORDS', 2);
define('EMAIL_NOT_EXIST', 3);
define('EMAIL_CHECK_FAILS', 4);
$query_emails = mysqli_query($db_link, "SELECT email_id, email_address FROM emails");
while ($email_row = mysqli_fetch_array($query_emails)) {
$check_email = does_email_exist($email_row[1]);
echo "status: " . $check_email . " " . $email_row[1] . "<br>";
switch($check_email) {
case INVALID_EMAIL_ADDRESS;
//echo $check_email . " " . $email_row[1] . "<br>";
$query = mysqli_query($db_link, "UPDATE mail_list SET status = " . INVALID_EMAIL_ADDRESS . " WHERE email_id = " . $email_row[0]);
++$num_invalid_emails;
break;
case EMAIL_EXIST;
echo $check_email . " -- " . $email_row[1] . "<br>"; // this line get echoed
$query = mysqli_query($db_link, "UPDATE mail_list SET status = " . EMAIL_EXIST . " WHERE email_id = " . $email_row[0]);
++$num_email_exist;
break;
case NO_MX_RECORDS;
echo $check_email . " -- " . $email_row[1] . "<br>";
$query = mysqli_query($db_link, "UPDATE mail_list SET status = " . NO_MX_RECORDS . " WHERE email_id = " . $email_row[0]);
++$num_no_mx_records;
break;
case EMAIL_NOT_EXIST;
echo $check_email . " -- " . $email_row[1] . "<br>"; // this line get echoed too, but the other don't.
$query = mysqli_query($db_link, "UPDATE mail_list SET status = " . EMAIL_NOT_EXIST . " WHERE email_id = " . $email_row[0]);
++$num_emails_not_exist;
break;
case EMAIL_CHECK_FAILS;
default;
$query = mysqli_query($db_link, "UPDATE mail_list SET status = " . EMAIL_CHECK_FAILS . " WHERE email_id = " . $email_row[0]);
++$num_email_check_fails;
break;
}
}
在該表中,一些的電子郵件存在,另一個不存在,我應該在此表格行中看到:EMAIL_NOT_EXIST
或EMAIL_EXIST
,但我看到所有記錄都有NO_MX_RECORDS
。
我在這裏做錯了什麼?
使用'echo'轉儲每個查詢並在MySQL中手動運行它。檢查是否發生同樣的情況。如果是這樣,你必須在MySQL中檢查你的枚舉。 –