var_dump说:STRING,echo说:注意:数组转换为字符串。 <! - ? PHP PDO - >

时间:2014-03-29 16:22:47

标签: php echo var-dump

我的代码如下所示:

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仍然告诉我它是一个字符串。 如果有人有想法,我会很感激。干杯!

2 个答案:

答案 0 :(得分:0)

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

答案 1 :(得分:0)

这个问题不是真实的问题 您正在运行其他一些代码,很可能是这样的

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

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