var_dump说:STRING,echo说:注意:数组到字符串的转换<;?PHP-PDO


var_dump says: STRING, echo says: Notice: Array to string conversion. <? PHP PDO

我的代码如下所示:

try {
    $tagsel = $db->prepare('SELECT tag.name FROM tag LEFT JOIN '.TB_NAME.' ON tag.id = '.TB_NAME.'.tag WHERE '.TB_NAME.'.id =?');
    $tagsel->bindParam(1, $id);
    $tagsel->execute();
} catch (Exception $e) {
    echo "Couldn't update database";
    exit;
}
$tagsel = $tagsel->fetch(PDO::FETCH_ASSOC);
var_dump($tagsel);
echo $tagsel;

结果是:

 string(6) "people"
 Notice:  Array to string conversion in C:'xampp'htdocs'blastbland'admin'inc'admin-   functions.php on line 171 Array

我只是想知道,这怎么可能?我需要$tagsel变量是一个字符串,这样我以后就可以与其他字符串进行比较,但令人惊讶的是,我发现它无法进行比较或回显,但var_dump仍然告诉我它是字符串。如果有人有主意,我会很感激的。干杯!

PDO::FETCH_ASSOC-您在这里要求一个关联数组。如果您只是试图回显结果,PHP必须尝试将$tagsel隐式转换为字符串。您可以使用print_r来查看$tagsel的内容。

这个问题不是真的
你正在运行一些其他代码,很可能是类似于这个的代码

var_dump($tagsel['name']);
echo $tagsel;

你必须更加注意你运行的代码,不应该让其他人替你做。