致命错误:在第39行的非对象dataLayer.php上调用成员函数query()

致命错误:在第39行的非对象dataLayer.php上调用成员函数query(),php,database,pdo,Php,Database,Pdo,这段代码在我的类测试中 然后在index.php中调用getData: <?php require_once "dataLayer.php"; $x = new Testing(); $x-> connect(); $x->getData("SELECT * FROM faculty"); ?> 知道这个代码有什么问题吗?语法有问题吗?现在我知道问题出在哪里了。在getData中调用setData时发生。 因为您将setData定义为同

这段代码在我的类测试中

然后在index.php中调用getData:

<?php
    require_once "dataLayer.php";
    $x = new Testing(); 
    $x-> connect();
    $x->getData("SELECT * FROM faculty");
?>

知道这个代码有什么问题吗?语法有问题吗?

现在我知道问题出在哪里了。在getData中调用setData时发生。 因为您将setData定义为同一类的方法,所以应该从类内部调用它。所以改变

function getData($sql){
    if(!setData($sql)){


注意:以后请发布完整的错误消息,包括行号,并标记发生错误的行。请参阅我对您文章的编辑,还有一些相关的代码,这些代码可能会建议将这些函数定义为类方法。

这些代码可能存在于类中吗?您在哪里定义了函数?你从哪个文件中调用它?Deceze,是的,这个代码在一个类中。@Havelock,我在你问我的另一个文件中添加了代码。谢谢,它工作了,但我收到另一条错误消息,它说,致命错误:在第37行的/Volumes/Students/Students/135/pju2173/Sites/DB_PDO/dataLayer.php中对非对象调用成员函数查询如果在构造函数或其他方法中设置了$dbh变量,那么您可能应该使用$this->dbh而不是$dbh。只是胡乱猜测。。。
function getData($sql){
    if(!setData($sql)){
function getData($sql){
    if(!$this->setData($sql)){