【问题标题】:Can fetch Data inside the class but when return it's send only boolean value php PDO?可以在类中获取数据,但返回时只发送布尔值php PDO?
【发布时间】:2019-01-07 21:49:08
【问题描述】:

我正在尝试使用 PDO 构建数据库类,这是我第一次使用 pdo,所以在构建时我陷入了这个问题,我能够使用类创建并连接到数据库,但问题是当我尝试执行和获取时返回数据错误说

在布尔值上调用成员函数 fetch()

但我可以在类内部执行此获取此问题仅在我尝试获取返回的数据并且我已经回显了它返回的返回数据时出现了 1

这是试图返回的函数(没有使用参数,只是使用了 dummy)

 public function init($query,$param =[]){
        if(!$this->bConnected) { $this->Connect(); }
        try{
            $stmt = $this->pdo->prepare('SELECT * FROM business');
            $stmt->execute();
            return $stmt->execute();


        }catch(Exception $e){
            echo $e->getMessage();
        }




     }

调用类对象名是$myobj

 $stmt = $myobj->init('SELECT * FROM business',$value);

    while($rows = $stmt->fetch(PDO::FETCH_ASSOC)){

        echo( $rows['bs_name'] ."  |" .$rows['bs_id']. "<br>");
    }

这是相同的代码,唯一的区别是这是在 class.working 中没有任何错误

   public function init($query,$param =[]){
        if(!$this->bConnected) { $this->Connect(); }
        try{
            $stmt = $this->pdo->prepare('SELECT * FROM business');
            $stmt->execute();
             $result = $stmt->setFetchMode(PDO::FETCH_ASSOC); 
            while($rows = $stmt->fetch(PDO::FETCH_ASSOC)){
                echo( $rows['bs_name'] ."  |" .$rows['bs_id']. "<br>");
            }

        }catch(Exception $e){
            echo $e->getMessage();
        }




     }

【问题讨论】:

  • 阅读execute() 的文档。特别是“返回值”部分。

标签: php mysql pdo


【解决方案1】:

您的方法返回$stmt-&gt;execute() 的结果(表示语句执行成功/失败的布尔值,不是查询结果)。

$stmt = $this->pdo->prepare('SELECT * FROM business');
return $stmt->execute();

相反,要让方法按照您使用的方式工作,您需要执行语句,然后返回语句本身,而不是 execute() 的结果。

$stmt = $this->pdo->prepare('SELECT * FROM business');
$stmt->execute();
return $stmt;

【讨论】:

  • 非常感谢非常感谢,我只花了 2 个小时来解决这个问题
  • 解释得很好。
  • @ThalindaBandara 我知道它是怎么回事,有时答案就在那里,你看到它之后似乎很明显。在花了几个小时试图自己解决错误的问题后,我实际上只是在休息一下。美好时光;-)
  • 感谢@FunkFortyNiner
猜你喜欢
  • 1970-01-01
  • 2010-12-14
  • 2021-01-20
  • 1970-01-01
  • 2012-08-03
  • 2011-06-24
  • 2020-08-24
  • 2012-05-10
相关资源
最近更新 更多