Php 从mysqli获取数据

Php 从mysqli获取数据,php,mysqli,Php,Mysqli,我一直收到这样一条消息,我似乎无法找出原因,“mysqli_query()期望参数1是mysqli” 这是我的代码(我有一个名为database aside repsonable的对象,用于db连接和其他db函数) 像这样改变你的班级: class MySQLDatabase{ private $connection; public function __construct(){ $this->connection = mysqli_connect('l

我一直收到这样一条消息,我似乎无法找出原因,“mysqli_query()期望参数1是mysqli” 这是我的代码(我有一个名为database aside repsonable的对象,用于db连接和其他db函数)


像这样改变你的班级:

class MySQLDatabase{

    private $connection;

    public function __construct(){
        $this->connection = mysqli_connect('localhost', 'root', '', 'alpha');
        if (!$connection){die ("can't connect:".mysqli_error())};
    }

    public function  get_connection(){
        return $this->connection;
    }
}
<?php 

include 'MySQLDatabase.php';

$db = new MySQLDatabase();
$conn = $db->get_connection();

$sql="SELECT marque,cpu FROM pc";
if ($result=mysqli_query($conn,$sql)){
    // Fetch one and one row
    while ($row=mysqli_fetch_row($result))
    { 
        printf ("%s %s\n",$row[0],$row[1]);
    }
    // Free result set
    mysqli_free_result($result);
}else{
    echo 'query failed';
}
?>
像这样使用它:

class MySQLDatabase{

    private $connection;

    public function __construct(){
        $this->connection = mysqli_connect('localhost', 'root', '', 'alpha');
        if (!$connection){die ("can't connect:".mysqli_error())};
    }

    public function  get_connection(){
        return $this->connection;
    }
}
<?php 

include 'MySQLDatabase.php';

$db = new MySQLDatabase();
$conn = $db->get_connection();

$sql="SELECT marque,cpu FROM pc";
if ($result=mysqli_query($conn,$sql)){
    // Fetch one and one row
    while ($row=mysqli_fetch_row($result))
    { 
        printf ("%s %s\n",$row[0],$row[1]);
    }
    // Free result set
    mysqli_free_result($result);
}else{
    echo 'query failed';
}
?>


在您的
打开连接
函数中,将
$connection
替换为
$this->connection
,用于回复,但它给出了一个错误,表示它不“知道”它,我认为$connection工作正常。您需要将所有
$connection
替换为
$this->connection
(也将此变量定义为类的成员变量)在您的
打开连接
函数中。
$connection
不是在函数的外部定义的
打开连接
。通过将其作为类的公共成员变量,您可以在代码中自由使用它,只要mysqli连接在
$database->connection
中打开。实际上,我在函数外部定义了它在类的开头,它是这样的:public$conction抱歉,我没有提到它,您仍然需要使用
$this->connection
,因为
$connection
是方法范围内的局部变量。