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

时间:2013-10-15 13:31:52

标签: php sql email

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

如果之前没有任何内容,如何插入,如果之前还有其他数据要添加,我怎么能不插入

2 个答案:

答案 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来实现更强大和可扩展的解决方案。