wordpressでSQL使ってデータを取得して出力しようとしたら「Recoverable fatal error: Object of class stdClass could not be converted to string in…」というエラーが出た
データベースから取得した値を出力したい
$results
にデータベースから取得した値を入れていたんだけど、アクセス方法がわからずに苦戦
var_dump($results)
を使い中身を見ると以下のように値が格納されていた
array(1) {
[0]=>
object(stdClass)#8347 (1) {
["count(keyname)"]=>
string(1) "2"
}
}
配列なので$results[0]
でアクセスするところまでわかったけど「object(stdClass)」ってなんだ?
stdClassのアクセス方法
まず、stdClassはPHP標準のClassでデータベースから取ってくるデータがstdClassの配列とのこと
とりあえずforeach()
使って回してみた
foreach ($results as $object) {
var_dump($object);// object(stdClass)#8347 (1) { ["count(keyname)"]=> string(1) "2" }
foreach ($object as $obj) {
var_dump($obj);// string(1) "2"
echo $obj;// 取得できた!
}
}
2回回さないと取得できないな…
次、直にアクセスする方法
echo $results[0]->{"count(keyname)"};// 取得できた!
波括弧{}
使ってアクセスするみたいね
count(keyname)
がメソッドだと勘違いされるから波括弧{}
が必要みたい
キーがcount
だけだったら
$results[0]->count
でもアクセスできるっぽい
知らなかった…
Leave a Comment