ВСТАВИТЬ адрес электронной почты, но игнорировать (если существует ||, если суффикс = существующий суффикс && имя отправителя = имя существующего отправителя) MYSQL - PullRequest
0 голосов
/ 09 марта 2011

Я пытаюсь вставить запрос в MySQL, используя php, но есть ограничения.

$sql_insert = "
INSERT IGNORE 
    into `email` 
        (`message`,`useremail`,`senderemail`) 
    VALUES 
        ('$emailmessage','$email_address','$fromaddress') 
WHERE
";

$ fromaddress - это значение, которое я хочу установить для ограничений.

Вот пример

"Zazzle" <sender-1234@zazzle.com>

Не вставлять, если sender-1234@zazzle.com находится в поле отправителя Не вставляйте, если "Zazzle" в поле и если @zazzle.com также в поле.

1 Ответ

0 голосов
/ 09 марта 2011

вы можете разделить электронное письмо, а затем проверить базу данных, чтобы увидеть, существует ли оно в базе данных, используя preg_match.При использовании примера:

--"Zazzle" <sender-1234@zazzle.com>

$atIndex = strrpos($fromaddress, "@");
$nameIndex = strrpos($fromaddress, "<");
$domain = substr($fromaddress, $atIndex+1); # returns zazzle.com
$local = substr($fromaddress, $nameIndex+1, $atIndex); # returns sender-123
$name = substring($fromaddress, 0, $nameIndex-1); # returns "Zazzle"

оттуда все, что вам нужно сделать, это выполнить запрос select / where и, если результатов нет, вставить.

$query = "SELECT * FROM email WHERE senderemail like '".$domain."'";
$result=mysql_query($query);
$num=mysql_num_rows($result);

ИЛИ

$query = "SELECT * FROM email";
$result=mysql_query($query);
while($row = mysql_fetch_array($result, MYSQL_ASSOC)) {
     if(preg_match($domain, $row['senderemail'])) { $isPresent = true; }
} 

Preg match будет искать строки в отдельном возвращаемом значении и, если присутствует, установить значение в true.Затем вы можете сравнить это значение с истинным / ложным, а затем обновить базу данных.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...