#php #mysql
#php #mysql
Вопрос:
Я пытаюсь прочитать адрес электронной почты из базы данных и отправить почту на электронную почту.
Вот мой код для чтения адреса электронной почты:
$recipient = mysql_query("SELECT recipientEmail FROM flightStatus
WHERE arrivalStatus = 'Landed'");
В настоящее время в базе данных есть только одни данные с выполненным условием.
Использую пример PHPMailer для обхода функции рассылки, поэтому моя функция mail выглядит следующим образом:
$mail->From = "xxxx.yyyyy@gmail.com";
$mail->AddAddress($recipient);
Но я получаю сообщение, не могу отправить сообщение.
Комментарии:
1. Планируете ли вы отправлять электронные письма нескольким людям в конечном итоге?
2. Вы пытались вывести адрес электронной почты, прежде чем использовать его для отправки электронного письма? Довольно часто почтовый сервер настроен неправильно, что также приводит к появлению сообщения «не удается отправить».
3. @opatut: он даже не получил результатов, так что не слишком удивительно, что это работает не так, как он хочет.
Ответ №1:
Вы пытаетесь отправить электронное письмо на mysql-ресурс. Сначала вы должны «извлечь» результаты с помощью, например. mysql_fetch_assoc
.
Ответ №2:
Вот очень хорошая ссылка, которая поможет вам начать или улучшить свои навыки работы с mysql php
Обратите внимание, что вам нужно будет просмотреть результат вашего запроса, даже если у вас есть только одна запись в нем, потому что в конечном итоге у вас будет более одной записи
Ответ №3:
$recipient
является ресурсом (mysql_query). Чтобы перейти к выбранному recipientEmail
, вы можете использовать:
$resource = mysql_query("SELECT recipientEmail FROM flightStatus WHERE arrivalStatus = 'Landed'");
$row = mysql_fetch_array($resource);
$mail->From = "...";
$mail->AddAdrress($row['recipientEmail']);
Комментарии:
1. Я думаю, важно упомянуть, что это добавляет только ПЕРВЫЙ результат к методу addAddress PHPMailer. В случае нескольких адресов вам придется добавлять результаты с помощью циклов while, for или foreach. Кстати, в этом случае, я думаю, было бы лучше использовать $row = mysql_fetch_array($result, MYSQL_ASSOC); ИЛИ $row = mysql_fetch_assoc ($result); , потому что, возможно, нет необходимости извлекать результаты числовым способом.