PHP Catchable致命错误:类stdClass的对象无法转换为字符串

时间:2014-03-27 19:06:37

标签: php mysql mysqli

$SourceID = $this->source_information->SourceID;

// the following fails 

if($results = $this->mysqli->query("SELECT .... R.Name = '$release_name' AND S.SourceID = $this->source_information->SourceID  AND S.ReleaseID = R.ReleaseID"))

// this will works  
if($results = $this->mysqli->query("SELECT .... R.Name = '$release_name' AND S.SourceID =  $SourceID  AND S.ReleaseID = R.ReleaseID"))

我有大量的代码与$ this-> source_information-> SourceID排序,如果其中的东西,我真的不知道要重写它,告诉我,我可以使这项工作如何。

编辑如下:

出口(的var_dump($这 - > source_information->的SourceID));

返回(字符串(2)" 18")

感谢您提出准备好的陈述。我将从现在开始使用准备好的陈述。

1 个答案:

答案 0 :(得分:1)

Simple variable interpolation syntax,即"$this->foo",最多只能解析一个嵌套对象。 "$this->foo->bar"被解释为$this->foo加上字符串"->bar"。这就是为什么它抱怨source_information对象。如果要嵌入更深层次的嵌套对象,请使用complex variable interpolation syntax

"... S.SourceID = {$this->source_information->SourceID}  AND ..."