0

学生表包含: id firstname lastname

函数 get_db_fields 获取学生表字段。

class Student{

public function get_db_fields(){
        $sql = "SELECT * FROM students";
        $result = mysql_query($sql);
        if(!$result){
         die("Failed :" . mysql_error());
        }
        $db_fields = array();
        while($field = mysql_fetch_field($result)){
           $db_fields[] = "'".$field->name."'";
        }
        return join(',',$db_fields);
    }

    public $db_fields = array($this->get_db_fields()); <--- This is not working

}

return join(',',$db_fields) = 'id','firstname','lastname'

我的问题是如何将返回值设置为 public $db_fields。所以 public $db_fields 将是 "public $db_fields = array('id','firstname','lastname')"

到目前为止我尝试过的

1.)

public $db_fields = array($this->get_db_fields()); <--- This is not working

错误:解析错误:语法错误,第 33 行 C:\Program Files\xampp\htdocs\ieti\includes\student.php 中的意外 T_VARIABLE

2.) $database_fields = $this->get_db_fields();

错误:解析错误:语法错误,第 33 行 C:\Program Files\xampp\htdocs\ieti\includes\student.php 中的意外 T_VARIABLE

4

2 回答 2

2

创建一个构造函数并将返回的值赋值get_db_fields给成员变量db_fields。成员变量只能使用在编译时评估的值进行初始化。

class Student{

  public $db_fields;

  public function __construct() {
    $this->db_fields = $this->get_db_fields();
  }

// Rest of your code
于 2012-10-29T06:26:55.220 回答
0
public $db_fields = array($this->get_db_fields());

在这里使用“数组”是不对的,应该是

public $db_fields =$this->get_db_fields();

第二,类有这个的构造函数......

所以

public function __construct(){
$this->db_fields = $this->get_db_fields();
}

此外,现在不鼓励使用 mysql_query ,如果您使用的是面向对象的已经使用PDO

于 2012-10-29T06:33:20.443 回答