Php 对单独类中的非对象调用成员函数bind_param()

Php 对单独类中的非对象调用成员函数bind_param(),php,php-5.6,Php,Php 5.6,你好,我尝试了一些解决方案,但仍然不适合我。 我有以下代码: public function databaseSearch($connection,$keyword){ $test =$connection->query("SELECT * FROM courses WHERE courseKeywords LIKE %?%"); $test->bind_param("s",$keyword); $test->execute();

你好,我尝试了一些解决方案,但仍然不适合我。 我有以下代码:

public function databaseSearch($connection,$keyword){
        $test =$connection->query("SELECT * FROM courses WHERE courseKeywords LIKE %?%");
        $test->bind_param("s",$keyword);
        $test->execute();
        return $test->get_result();
    }
以及获得:

Call to a member function bind_param() on a non-object
这就是我所说的:

$queryRepository = new QueryRepository();

$queryRepository->checkKeyword($keyword);

$result = $queryRepository->databaseSearch($connection,$keyword);

我知道这可能是语法错误,但简单的查询不起作用。

我认为您的查询应该是这样的

$test=$connection->query(“从courseKeywords(如:s)所在的课程中选择*);//假设您有参数's'


希望这能解决您的问题

我认为您的查询应该是这样的

$test=$connection->query(“从courseKeywords(如:s)所在的课程中选择*);//假设您有参数's'


希望这能解决你的问题

我发现了问题所在。我必须添加私有变量:

private $courseKeywords;
然后在bind_参数后向databaseSearch函数添加以下行:

$this->courseKeywords = $courseKeywords
“整个”类看起来像:

class QueryRepository{

private $courseKeywords;
private $rowsAffected;

public function databaseSearch($connection,$courseKeywords){
    $statement = $connection->prepare("SELECT * FROM courses WHERE courseKeywords like ?");
    $statement->bind_param("s",$this->courseKeywords);
    $this->courseKeywords = $courseKeywords;
    $statement->execute();
    $statement->close();
    $this->rowsAffected = $connection->affected_rows;
}
public function rowsAffected(){
        return $this->rowsAffected;
    }

我在那里发现了问题。我必须添加私有变量:

private $courseKeywords;
然后在bind_参数后向databaseSearch函数添加以下行:

$this->courseKeywords = $courseKeywords
“整个”类看起来像:

class QueryRepository{

private $courseKeywords;
private $rowsAffected;

public function databaseSearch($connection,$courseKeywords){
    $statement = $connection->prepare("SELECT * FROM courses WHERE courseKeywords like ?");
    $statement->bind_param("s",$this->courseKeywords);
    $this->courseKeywords = $courseKeywords;
    $statement->execute();
    $statement->close();
    $this->rowsAffected = $connection->affected_rows;
}
public function rowsAffected(){
        return $this->rowsAffected;
    }
可能重复的“s”可能重复的字符串值不保留吗?它是mysqli。“s”可以是任何东西,如果你愿意,你可以替换它,它只是一个标识符。“s”不代表字符串值吗?它是mysqli。“s”可以是任何东西,如果你愿意,你可以替换它,它只是一个标识符。