我不明白这个代码行是做啥的,$this->link->query($query)? [复制]
Posted
技术标签:
【中文标题】我不明白这个代码行是做啥的,$this->link->query($query)? [复制]【英文标题】: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)”是什么? 手册中有所有内容php.net/manual/en/language.oop5.php --- php.net/manual/en/language.oop5.basic.php 并且 Stack 不是一个教程网站。那里有足够的东西供你学习。如果没有什么是“坏”的,那么我们就没有什么可以“修复”的了。 【参考方案1】:$this
是您正在使用的当前 Database
对象。
->
调用该对象的方法或成员
link
正如您所指出的,它是 Database
的成员,恰好是 mysqli
的另一个对象。
query($query)
是一种链接方法。
所以你打电话给mysqli
query
。参数$query
应该是你的sql
【讨论】:
谢谢!非常感谢!我知道 Stack Overflow 不是教程网站,但您刚刚解决了一个重大困惑。【参考方案2】:$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
没有在我能看到的任何地方定义。
【讨论】:
以上是关于我不明白这个代码行是做啥的,$this->link->query($query)? [复制]的主要内容,如果未能解决你的问题,请参考以下文章
我是 python 新手,我偶然发现了一个函数/变量?我不知道它是做啥的,有人可以解释一下吗? [复制]