可捕获的致命错误:类PDOStatement的对象无法在D中转换为字符串

时间:2013-06-20 10:32:29

标签: php pdo

我有一个问题,真的告诫我,我创建一个网站,我希望我的用户首先连接到该网站,然后他们填写表中的信息,然后保存数据并通过id重新显示它们 这就是我正在努力做的事情

$id=#SESSION{idCommercant}
//$mail=$_SESSION['_mail'];
$reponse = $bdd->prepare("SELECT * FROM produit, produit_commerce, commerce, commercant
where produit_commerce.idmagasin=commerce.idMagasin
and produit.idProduit=produit_commerce.idproduit

and  commerce.idCommercant= commercant.idCommercant
and  commercant.idCommercant= :id  ;");

$reponse->execute(array(':id'=>$id)) or die(print_r($reponse->errorInfo()));

但这会返回以下错误:

Catchable fatal error: Object of class PDOStatement could not be converted to string in D:\wamp\www\it_technology\Affichage\essai.php on line 45

2 个答案:

答案 0 :(得分:1)

错误信息非常明显:在45行上,您尝试将$response对象转换为字符串。试图回应它或连接或其他什么。您必须从响应中获取数据数组,然后使用它:

$row = $reponse->fetch();

另请注意,一般情况下禁止使用die(),尤其是PDO本身无法使用,并且比手动杀死它更好。

答案 1 :(得分:-1)

你的第一行应该是$ id = $ _SESSION ['idCommercant'](我想)

现在,在=符号后面开始单行评论。在下一行继续执行,并将$ response(PDOStatement)的值分配给$ id。

在最后一行中,您尝试将此参数作为参数传递给$ response-> execute(),它需要一个字符串数组,但是给出了一个带有PDOStatement的数组。它无法转换,因此错误。