如果只有1个结果,php将崩溃

如果只有1个结果,php将崩溃,php,implode,Php,Implode,我正在使用下面的退休电子邮件地址在用户注册后自动发送电子邮件。如果只有一个结果,那么在php中LoadResultArray列表是否会正确内爆?或者,如果只有一个结果,我是否必须编写一个异常 $query = "SELECT u.email FROM " . $table_prefix . "users as u, " . $table_prefix . "bl_teamcord as tc WHERE FIND_IN_SET('$team_id',tc.teams) AND tc.u_id

我正在使用下面的退休电子邮件地址在用户注册后自动发送电子邮件。如果只有一个结果,那么在php中LoadResultArray列表是否会正确内爆?或者,如果只有一个结果,我是否必须编写一个异常

$query = "SELECT u.email FROM " . $table_prefix . "users as u, " . $table_prefix . "bl_teamcord as tc WHERE FIND_IN_SET('$team_id',tc.teams) AND  tc.u_id = u.id AND tc.reg_emails = 1";        
             $db->setQuery($query);
    $remail2 = $db->loadResultArray();


   if ($remail2){
$remail3 = implode(",",$remail2);
}else{
$remail3 = "";}
此外,电子邮件功能是否有问题

    $to = $remail3;

内爆适用于任何大小的阵列

内爆(',',array())=''


内爆(“,”,数组('something'))==='something'

如果它只有1个元素,则分隔符将不存在,因此您应该没有问题。此外,如果没有元素,它也将返回一个空字符串,因此无需测试

$a = array();
$b = implode(',',$a); // ""

$a = array('foo');
$b = implode(',',$a); // "foo";

$a = array('foo','bar');
$b = implode(',',$a); // "foo,bar";

如图所示。

要回答第一个问题,内爆将始终为传入的数组返回字符串

但是,当您传入非数组的内容时,php将抛出一条警告,指示您刚才传入的项不是有效数组

所以要回答你的问题,这就是你想要的:

<?php
$query = "SELECT u.email FROM " . $table_prefix . "users as u, " . $table_prefix . "bl_teamcord as tc 
      WHERE FIND_IN_SET('$team_id',tc.teams)
        AND tc.u_id = u.id
        AND tc.reg_emails = 1";
$db->setQuery($query);

$remail2 = $db->loadResultArray();
$remail3 = (!empty($remail2) ? implode(",", $remail2) : "");
?>

您希望“正确”的结果是什么?试一试怎么样?你试过了吗?我的意思是,你可以把代码放在一个PHP文件中,运行它,看看会发生什么。你有一个开发环境,不是吗?这可能比问一个问题要快…@netcoder+1即使你没有开发环境,你也可以简单地用一个元素写一个文字数组,然后试试。