我不明白这个代码行是做什么的,$ this-> link-> query($ query)?

时间:2016-07-26 15:27:13

标签: php mysqli

只有$ this->部分 - >查询($ query)我理解该链接是数据库类的成员变量,但不明白发生了什么$ this-> link->查询($ query)执行?求助,我是编码的新手

我的整个代码:

<?php


class Database
{
    public $db_host=DB_HOST;
    public $db_user=DB_USER;
    public $db_pass=DB_PASS;
    public $db_name=DB_NAME;


    public $link;

    public $error;

    public function __construct()

    {



        // Call connect function

        $this->connect();


    }

    private function connect()
    {
        $this->link= new mysqli($this->db_host,$this->db_user,$this->db_pass,$this->db_name);

        if(!$this->link)
        {
            $this->error="Connection Failed";
            return false;
        }

    }

    public function select($query)
    {
        $result=$this->link->query($query) or die ("Query could not execute");
    }

}


?>

2 个答案:

答案 0 :(得分:0)

  1. $this是您正在使用的当前Database对象。
  2. ->调用该对象的方法或成员
  3. 您指出的
  4. linkDatabase的成员,恰好是mysqli的另一个对象。
  5. query($query)是一种链接方法。
  6. 所以你打电话给mysqli query。 param $query应该是你的sql

答案 1 :(得分:0)

$this->link是一个数据库连接对象,它有一个名为query()的方法,用于执行数据库查询并返回mysqli结果对象。 query()方法采用SQL字符串。所以调用它的一种方法是:

$result = $this->link->query("SELECT * FROM table WHERE 1") ;

在调用mysqli query()时使用变量而不是字符串文字非常常见:

$sql = "SELECT * FROM table WHERE 1" ;
$result = $this->link->query($sql) ;

对于您的代码,包含SQL字符串的变量称为$query,这可能会让人感到困惑,特别是因为$query没有定义在我能看到的任何地方。