PHP插入查询-如果变量无效,请不要先插入逗号


PHP Insert query - dont insert comma first if variable is not valid

我正在运行一个插入以下变量的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,并且当电子邮件尝试发送时,我会收到错误,因为存在第一个而不是电子邮件地址

如果之前什么都没有,我如何使不插入,而插入如果之前有其他数据要添加?

除了您的代码风格和用户直接在SQL语句中输入的潜在安全问题外,

您正在寻找implode();

示例:

$mails = array('test@test.com', 'bla@bla.com');
if (is_array($mails)) {
    echo implode(',', $mails); //prints test@test.com,bla@bla.com
}

一个简单的解决方案是走另一条路,创建类似的变量

$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 "].',';

这样,最后的字符串将是安全的。

但是,我建议不要在数据库中进行这样的保存。创建包含表示对象的个人信息的表,并使用类似ORM的原则来实现更健壮和可扩展的解决方案。