php - 数组到字符串错误

标签 php mysql sql pdo

我在显示 .$app->reactieDoor($topic['id']); 时遇到问题,它会向我显示错误,我不知道为什么会这样!请帮我。

请注意,我是新手,所以如果我在代码中遗漏了什么,请告诉我。

错误所在行:

 echo ' laatste reactie: ' .$app->tijd_reactie($topic['id']) . ' door ' .$app->reactieDoor($topic['id']);

错误仅在我尝试使用此部分时显示:

.$app->reactieDoor($topic['id']);

函数代码:

function reactieDoor($topicid) {
        $this->database->query("SELECT klanten.voornaam, klanten.achternaam FROM reacties 
        LEFT JOIN klanten ON klanten.id=reacties.klant_id
        WHERE reacties.topic_id=:topic_id ORDER BY create_time DESC LIMIT 1"); 

        $this->database->bind(":topic_id", $topicid);    
        $reactie = $this->database->single();

        return $reactie;

    }

我得到的错误

最佳答案

我猜 $this->database->single(); 返回一个数组(包含名字和姓氏)所以当你从 return $reactie;函数,这是一个数组,您正试图将其插入到字符串中……因此出现错误。

由于该数组应包含名字和姓氏,请先尝试将其分配给 $name 变量,然后改用它。

类似于:

$name = "Mysterious Stranger";
if($n = $app->reactieDoor($topic['id'])) {
    $name = "{$n['voornaam']} {$n['achternaam']}";
}

echo " laatste reactie: "
    . $app->tijd_reactie($topic['id'])
    . " door {$name}";

虽然如果该函数总是应该返回包含名称的字符串,但在函数中这样做可能会更好。

在这种情况下,您可以将函数改为:

function reactieDoor($topicid) {
    $this->database->query("SELECT klanten.voornaam, klanten.achternaam FROM reacties 
        LEFT JOIN klanten ON klanten.id=reacties.klant_id
        WHERE reacties.topic_id=:topic_id ORDER BY create_time DESC LIMIT 1"); 

    $this->database->bind(":topic_id", $topicid);    
    $reactie = $this->database->single();

    return $reactie ? 
        "{$reactie['voornaam']} {$reactie['achternaam']}" :
        "Mysterious Stranger";
}

关于php - 数组到字符串错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49813779/

相关文章:

php - MongoDB 搜索 - 自动完成

javascript - 使表行 TR 成为链接

mysql子查询计数返回全局计数并忽略where

python - SQL中的x'0a'是什么意思?

php - PHP 中的 MySql 子查询未产生正确的结果

php - Composer 未安装在Windows 7中

mysql - 如何在 MySQL 中获取行位置?

python - SQL 跨列绝对值

mysql - 如何获取此查询中重复项的大小?

sql - 如何使用纯SQL进行探索性数据分析?