我正在运行插入以下变量的SQL INSERT查询:
'".$emails_list."".$extra_emails_list."".$cc_email_to."',
我需要使用,分隔每个电子邮件地址,以便$ cc_email_to var看起来像:
$cc_email_to = ','.$_POST["email_cc"];
但如果$emails_list
或$extra_emails_list
中没有电子邮件地址,则$ cc_email_to变量会插入, email@domain.com
,当电子邮件尝试发送时,我会收到错误,因为而不是电子邮件地址
如果之前没有任何内容,如何插入,,如果之前还有其他数据要添加,我怎么能不插入,?
答案 0 :(得分:0)
除了你的代码风格和直接在SQL语句中用户输入的潜在安全问题,
您正在寻找implode();
。
示例:
$mails = array('test@test.com', 'bla@bla.com');
if (is_array($mails)) {
echo implode(',', $mails); //prints test@test.com,bla@bla.com
}
答案 1 :(得分:-1)
一个简单的解决方案是走另一条路并创建像这样的变量
$cc_email_to .= $_POST["email_cc"].',';
if($emails_list!=null) $emails_list .=$_POST["email_list "].',';
if($extra_emails_list!=null) $extra_emails_list .= $_POST["extra_email_list "].',';
这样最终的字符串就是安全的。
但是我建议不要在数据库中保存。创建包含表示对象的个人信息的表,并使用像Doctrine这样的ORM来实现更强大和可扩展的解决方案。