現在、コンセプトのプロトタイプを作成しているため、PHPMailer を使用して電子メールを生成/送信しています。近いうちに SendGrid のようなものに移行しますが、現時点ではそれは問題ではありません。DB 内のすべてのユーザーにメールを送信する必要がありますが、メールは DB に保存されている要素 (個々のユーザーに固有) に基づいてカスタマイズされます。
DBからフィールドを取得してメールを送信するためにPHPMailerを使用しています。ただし、すべてのユーザーを循環して各ユーザーに電子メールを生成する機能を追加しようとすると、PHP/SQL の問題が発生しているようです。
"users" テーブルにはフィールドがあります: cid、email、fname、lname。DB 内の他の情報をプルするために cid をプルする必要があり、メッセージの送信先を知るためにメールが必要です。これが私のSQL/PHPです:
require_once('/PHPMailer_v51/class.phpmailer.php');
include $_SERVER['DOCUMENT_ROOT'] . '/NG/includes/db.inc.php';
try
{
$sql = 'SELECT * FROM users';
$result = $pdo->prepare($sql);
$result->execute();
}
catch (PDOException $e)
{
$error = 'Error fetching user information.';
include 'error.html.php';
exit();
}
foreach ($result as $row);
{
try
{
$high_result = $pdo->query('SELECT title FROM book WHERE topic = "high" and cid = $row['cid']');
}
catch (PDOException $e)
{
$error = 'Error fetching fields from database!';
include 'error.html.php';
exit();
}
.... the rest of the for statement....
$high_result 行で予期しない T_STRING エラーが発生しています。「users」DB には、cid、email、fname、lname のフィールドがあります。SQL ステートメントで配列を参照できませんか? そうでない場合、これをどのように行うべきかについてのアイデアはありますか?
ありがとう、
より糸