类的对象无法在int中转换

时间:2017-04-10 21:27:15

标签: php database session

我的代码存在问题。

我不明白这个错误:

  

注意:第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)

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?