可捕获的致命错误:类PDOStatement的对象无法转换为字符串pdo php sql

时间:2017-01-29 18:15:09

标签: php mysql pdo

我知道这个问题已经得到解答,但我并没有真正解决我的问题。我实际上尝试选择sql基础的工资数量,但我有这个错误:"可捕获的致命错误:PDOStatement类的对象无法转换为字符串"

这是我的代码:

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

2 个答案:

答案 0 :(得分:0)

你必须使用

->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']'

答案 1 :(得分:0)

不能工作,但我知道我认为问题在哪里:

我的职能:

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

并且我的代码在我的主页上返回结果:

<p>Nombre de salariés : <?= getNbSalaries(); ?> </p>