【问题标题】:I don't understand what does this code line do, $this->link->query($query)? [duplicate]我不明白这个代码行是做什么的,$this->link->query($query)? [复制]
【发布时间】:2016-11-30 08:20:58
【问题描述】:

只有 $this->link->query($query) 我知道链接是类数据库的成员变量,但不明白 $this 时发生了什么->link->query($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");
    }

}


?>

【问题讨论】:

  • 我没有理解这里的问题。有什么问题”?它有效还是无效?或者,您想知道这一切“如何”结合在一起?
  • 呃,它运行查询并返回结果?
  • 问题是我不明白 "$this->link->query($query)" 是如何工作的。我正在使用“$this->link”访问“$link”成员变量,但不明白“$this->link->query($query)”是什么?
  • 并且 Stack 不是一个教程网站。那里有足够的东西供你学习。如果没有什么是“坏”的,那么我们就没有什么可以“修复”的了。

标签: php mysqli


【解决方案1】:
  1. $this 是您正在使用的当前 Database 对象。
  2. -&gt; 调用该对象的方法或成员
  3. link 正如您所指出的,它是 Database 的成员,恰好是 mysqli 的另一个对象。
  4. query($query) 是一种链接方法。

所以你打电话给mysqliquery。参数$query 应该是你的sql

【讨论】:

  • 谢谢!非常感谢!我知道 Stack Overflow 不是教程网站,但您刚刚解决了一个重大困惑。
【解决方案2】:

$this-&gt;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 没有在我能看到的任何地方定义。

【讨论】:

    猜你喜欢
    • 2020-01-04
    • 2019-11-21
    • 1970-01-01
    • 2016-04-06
    • 2020-03-02
    • 2022-12-05
    • 2016-12-07
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多