无法在另一个函数

时间:2017-01-24 02:48:26

标签: php mysql

不知道如何提出这个问题。

我正在设置类来处理我的数据库交互,并且有一个奇怪的传递变量的交互。我一定错过了什么。

我有一个班级DataBaseAPI我有一个函数QueryDB($value),将由其他函数调用。但是我在另一个函数中声明$value时遇到了问题。例如:

作品

include_once('DataBaseAPI.php');
$DB = new DataBaseAPI();

$test = $DB->QueryDB('id');
echo $test;

不起作用

include_once('DataBaseAPI.php');
$DB = new DataBaseAPI();

$test = $DB->getId();
echo $test;

DataBaseAPI.php

中开始上课
class DataBaseAPI {


  public function getId(){
    //the same function defined the same way but needing to use $this
    $this->QueryDB('id');//seems like a waste here but is for ease of use later on
  }


  public function QueryDB($value){
    echo $value; //echo's id
    global $conn; 
    $token = '7ci4f8ykfik3ndzufksy1dp16x3na4'; //Test Token not a real token
    $doesExists = "SELECT $value FROM user_info WHERE token='$token'";
    $existsResult = mysqli_query($conn, $doesExists);
    $check = $existsResult->fetch_assoc();
    return $check[$value];
  }
} 

我甚至用$value回声QueryDB($value)中的id来回调,就像我直接调用函数一样。

我只是不明白为什么第一种方法有效但第二种方法没有,但我仍然以同样的方式调用它。就在另一个功能里面。

1 个答案:

答案 0 :(得分:1)

返回getId()的结果,以便存储在$test中。做

 public function getId(){
    return $this->QueryDB('id');//seems like a waste here but is for ease of use later on
  }

而不是

 public function getId(){
    $this->QueryDB('id');//seems like a waste here but is for ease of use later on
  }