2014-03-29 54 views
1

我的代碼如下所示:var_dump說:STRING,回聲說:注意:數組到字符串的轉換。 <? 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仍然告訴我這是一個字符串。 如果有人有一個想法,我會很感激。乾杯!

+1

'echo $ tagsel ['name'];' – CodeBird

+0

我甚至試過,不幸的是沒有效果 – vacuum

+0

沒有辦法可能會發生這種情況,除非您使用的代碼與使用的代碼不一樣一個你粘貼在這裏。 – CodeBird

回答

0

PDO::FETCH_ASSOC - 你在這裏要求一個關聯數組。如果你只是試圖迴應結果,PHP必須嘗試隱含地將$tagsel轉換爲一個字符串。您可以改爲使用print_r來查看$tagsel的內容。

+0

我想我明白你的意思了。當然,print_r的作品。我唯一的問題是,我不能使用$ tagsel作爲數組(如$ tagsel ['define'],甚至不能作爲字符串。畢竟,使用默認獲取樣式解決了問題,所以我可以使用$ tagsel [0]作爲一個字符串,但對我來說似乎有點難看。謝謝!:) – vacuum

+0

好的。我失去了它。我認爲它是有效的,因爲具有默認獲取風格的新結果是:string(6)「people」[0] => string(6)「people」。 我只能在var_dump($ tagsel)之後使用echo $ tagsel [0]才能得到結果「people」。如果我只使用回聲和退出函數,我什麼也得不到。不知道,這似乎很胡說,我會嘗試尋找其他代碼中的錯誤。 – vacuum

0

這個問題不是真正的問題。
您正在運行一些其他的代碼,很可能是這樣的

var_dump($tagsel['name']); 
echo $tagsel; 
你必須更加註重運行,不應該叫別人爲你做它的代碼

+0

謝謝。我不會問這是否對我來說不會那麼奇怪。相信我,我正在關注,我一直堅持這一段時間了。我使用上面的代碼,你知道,這是Ctrl + C然後按Ctrl + V – vacuum

+0

是應該是一個有用的答案?似乎更像是向我傳道。但是,無論如何,謝謝你的時間,我想。 – vacuum

+0

對於給出的問題 - 當然是。 –

相關問題