This question already has answers here:
Catchable fatal error: Object of class PDOStatement could not be converted to string in D
                                
                                    (2个答案)
                                
                        
                                3年前关闭。
            
                    
我知道这个问题已经得到解答,但我真的无法解决我的问题。实际上,我实际上尝试选择基于sql的薪水数字,但我遇到此错误:“可捕获的致命错误:PDOStatement类的对象无法转换为字符串”

这是我的代码:

function getNbSalaries(){
   global $pdo;
   $query = "SELECT count(*) as nb FROM salaries ;";
   $prep= $pdo->prepare($query);
   $prep->fetch(PDO::FETCH_ASSOC);
   return $prep;
}

最佳答案

您必须使用

->prepare()
->execute()


要么

->query()


在这种情况下,因为它是没有任何参数的查询,所以这可能是最简单的解决方案

function getNbSalaries(){
   global $pdo;
   $query = "SELECT count(*) as nb FROM salaries";
   $prep= $pdo->query($query);
   $row = $prep->fetch(PDO::FETCH_ASSOC);
   return $row;
}


像这样使用global并不是一个好主意,将连接作为这样的函数的参数传递是一个更好的主意

function getNbSalaries($pdo){
   $query = "SELECT count(*) as nb FROM salaries";
   $prep= $pdo->query($query);
   $row = $prep->fetch(PDO::FETCH_ASSOC);
   return $row;
}

$row = getNbSalaries($pdo);
echo $row['nb']'

关于php - 可捕获的致命错误:无法将类PDOStatement的对象转换为字符串pdo php sql ,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/41924286/

10-10 11:15
查看更多