我知道你可以使用PHP的電子郵件驗證過濾器來檢查數據是否abc @ abc . ext
MySQL的驗證電子郵件記錄
反正是有,我可以運行一個MySQL查詢要做到這一點,檢查只是樣式格式。否則,我將不得不做一個分頁和負載平衡的限制腳本來選擇數據庫中的所有記錄(50,000+),並且服務器對共享主機上的客戶端已經很慢。
我只想查看僅有效電子郵件的列表,並且還可以檢查與like
查詢有關的重複或相似之處嗎?
欣賞此協議。
我知道你可以使用PHP的電子郵件驗證過濾器來檢查數據是否abc @ abc . ext
MySQL的驗證電子郵件記錄
反正是有,我可以運行一個MySQL查詢要做到這一點,檢查只是樣式格式。否則,我將不得不做一個分頁和負載平衡的限制腳本來選擇數據庫中的所有記錄(50,000+),並且服務器對共享主機上的客戶端已經很慢。
我只想查看僅有效電子郵件的列表,並且還可以檢查與like
查詢有關的重複或相似之處嗎?
欣賞此協議。
Somethis這樣
SELECT * FROM users WHERE email NOT REGEXP '^[^@][email protected][^@]+\.[^@]{2,}$';
OR
SELECT * FROM users WHERE email NOT REGEXP '^[A-Z0-9._%-][email protected][A-Z0-9.-]+\.[A-Z]{2,4}$';
更新。 這只是一個例子,如何在Mysql中使用正則表達式。
這會刪除[email protected]或[email protected]等 - 一些奇怪的電子郵件!甚至有空虛;手機號碼,沒有MD5的密碼以及您可以在電子郵件字段中想象的許多事物! – TheBlackBenzKid
'.museum'域呢? –
是的好主意**使用MySQL的正則表達式:)**請參閱本教程'http:// www.mysqltutorial.org/mysql-regular-expression-regexp.aspx' – SamarLover
您可以使用類似這樣
SELECT * FROM your_table
WHERE email_col LIKE '%@%.%'
得到(相當)的有效電子郵件,但不包括那些錯誤的肯定的。
但你應該檢查結果,以確保你展示什麼的...
無論如何,這是一個起點......
加上一個努力,我已經用它作爲上面的附加查詢編譯器。 – TheBlackBenzKid
@TheBlackBenzKid:謝謝;) – Marco
是的,因爲除了上述之外,我還用它來快速驗證和刪除。我想我會製作一個PHP頁面,以確保我可以收到乾淨的電子郵件,並與新註冊表單一起使用。這將是最好的方法。 – TheBlackBenzKid
使用這個,它會檢查'@'和'。'的位置。在電子郵件中。 這是測試之一。
SELECT * FROM school
WHERE email
NOT REGEXP 「^ [A-ZA-Z0-9] [A-ZA-Z0-9。 - ] * [a-zA-Z0-9。 - ] @ [a-zA-Z0-9] [a-zA-Z0-9 ._-] * [a-zA-Z0-9] \。[a-zA-Z] {2,4} $ 「;
與@Oyeme相同,但我需要修改\。通過[\。],我不知道爲什麼。如果沒有測試@測試,COM仍然被視爲有效...
SELECT * FROM users WHERE email NOT REGEXP '^[A-Z0-9._%-][email protected][A-Z0-9.-]+[\.][A-Z]{2,4}$';
PS:無法評論,因爲聲譽
運行該SQL創建MySQL數據庫內觸發他的答案,這將防止插入錯誤格式的電子郵件:
CREATE DEFINER=`root`@`localhost` TRIGGER `users_before_insert` BEFORE INSERT ON `users` FOR EACH ROW BEGIN
IF (NEW.`email` REGEXP '^[A-Z0-9._%-][email protected][A-Z0-9.-]+\.[A-Z]{2,4}$')=0 THEN
SIGNAL SQLSTATE VALUE '45000'
SET MESSAGE_TEXT = '[table:users] - `email` incorrect format!';
END IF;
END
這就是爲什麼我們的數據驗證它進入數據庫之前= \ – dqhendricks
我的客戶纔剛剛得到了XSS保護,也FILTER_VALIDATE_EMAIL從自己。只是尋找解決方案。我知道這個謝謝! – TheBlackBenzKid
爲什麼你需要這個一次性操作分頁?我不明白你的理由 –