我的代码存在问题。
我不明白这个错误:
注意:第136行的C:\ wamp \ www \ Site \ include \ fonction_panier.php中无法将类stdClass的对象转换为int
我的第136行:
返回$ total + $ total * $ _ SESSION [' panier'] [' tva'] / 100;
此行在此功能中:
function montantlGlobalTVA() {
$total = 0;
for ($i = 0; $i<count($_SESSION['panier']['libelleProduit']); $i++) {
$total += $_SESSION['panier']['qteProduit'][$i]*$_SESSION['panier']['prixProduit'][$i];
}
return $total + $total*$_SESSION['panier']['tva']/100;
}
TVA在我的数据库中:
$select = $db->query("SELECT tva FROM produits");
$tva = $select->fetch(PDO::FETCH_OBJ);
$_SESSION['panier']['tva']= $tva;
当我执行var_dump()
:
<td><?php echo var_dump($_SESSION['panier']['tva'])." %";?></td>
我得到了这个结果:
对象(stdClass的)[1] public&#t; tva&#39; =&GT;字符串&#39; 18&#39; (长度= 2)
答案 0 :(得分:1)
我打赌你试图获取列tva
的值。使用策略PDO::FETCH_OBJ
进行提取时,每行都将作为对象返回。
您可以通过调用tva
返回的对象中设置的fetch()
属性来获取值:
$row = $select->fetch(PDO::FETCH_OBJ);
$_SESSION['panier']['tva']= $row->tva;
而不是在会话中返回行(对象),而是从数据库中检索的实际值现在存储在会话中。
答案 1 :(得分:1)
$select = $db->query("SELECT tva FROM produits");
$tva = $select->fetch(PDO::FETCH_OBJ);
$_SESSION['panier']['tva']= $tva;
直接形式php.net:
PDO :: FETCH_OBJ:返回一个匿名对象,其属性名对应于结果集中返回的列名 http://php.net/manual/en/pdostatement.fetch.php
也许您想使用PDO :: FETCH_ASSOC?