我正在运行此代码:
$stmt = $pdo_conn->prepare("SELECT * from admin where support_emails = :support_emails and logged = :logged and disabled = :disabled ");
$stmt->execute(array(':support_emails' => 'Y', ':logged' => 'in', ':disabled' => ''));
$records = $stmt->fetchAll(PDO::FETCH_ASSOC);
if(count($records) > 0) {
foreach($records as $records2) {
if(filter_var($records2["email"], FILTER_VALIDATE_EMAIL)) {
$SupportEmailList = $records2["email"].', '.$SupportEmailList;
}
if(!empty($SupportEmailList)) {
$SupportEmailList = substr($SupportEmailList, 0, -2); // removes last 2 characters (`, `) from end of string
}
}
}
Run Code Online (Sandbox Code Playgroud)
返回
email1@domain1.com, email2@domain2.com
Run Code Online (Sandbox Code Playgroud)
当我在SQL中运行时
我已经添加了:
if(!empty($SupportEmailList)) {
$SupportEmailList = substr($SupportEmailList, 0, -2); // removes last 2 characters (`, `) from end of string
}
Run Code Online (Sandbox Code Playgroud)
', '
如果最后一个结果不存在,则从字符串的末尾删除,但它似乎在创建以下内容:
email1@domain1.com, email2@domain2.c
Run Code Online (Sandbox Code Playgroud)
而不是:
email1@domain1.com, email2@domain2.com
Run Code Online (Sandbox Code Playgroud)
我建议将结果保存在一个数组中,并使用implode(或join)将它们与逗号连接起来.
这样您就不必处理尾随逗号问题了.
$email_address = array();
foreach($records as $records2) {
if(filter_var($records2["email"], FILTER_VALIDATE_EMAIL)) {
array_push($email_address, $records2["email"]);
}
}
$comma_separated_email_address = implode(",", $email_address);
echo $comma_separated_email_address ;
Run Code Online (Sandbox Code Playgroud)