2017-02-11 20 views
2

我把表的所有列,并希望获取每个这个列的对象。如何获取PHP中的所有列的对象?

这是到目前为止我的代码,但不工作:

public function TakeAll($name){ 

    $sql = 'SELECT * FROM Rap WHERE RapperName = :name'; 
    $query = $this -> conn -> prepare($sql); 
    $query -> execute(array(':name' => $name)); 

    $row_count = $query -> fetchColumn(); 

    for($i = 0; $i <= $row_count; $i++){ 

    $data = $query -> fetchObject(); 

     $user["rapper"] = $data -> RapperName; 
     $user["musicpath"] = $data -> MusicPath; 
     $user["musicname"] = $data -> MusicName; 
     return $user; 

    } 
} 

用这种方式只是获取一个对象,但我有一个同名3物体在我的表,我想获取所有三个。

我设置$data = $query -> fetchObject($i);但当时没有表现出即使是一个对象也...

回答

1

你需要停下一次又一次重写阵列: -

public function TakeAll($name){ 

    $sql = 'SELECT * FROM Rap WHERE RapperName = :name'; 
    $query = $this->conn->prepare($sql); 
    $query->execute(array(':name' => $name)); 

    $row_count = $query->fetchColumn(); 
    $user = array(); // take array 
    $i = 0; // an increment variable 
    while($data = $query->fetchObject()){ 

     $user[$i]["rapper"] = $data->RapperName; 
     $user[$i]["musicpath"] = $data->MusicPath; 
     $user[$i]["musicname"] = $data->MusicName; 
     $i++; 
     // assign values to array with indexes of 0,1,2..... 
    } 
    return $user; // return final multi-dimensional array 
} 
+0

我借此在这样的另一个类中:$ all = $ db - > TakeAll($ name); $ response [“user”] = $ all; return json_encode($ response);它是否正确 ? – Erf

+0

@ user7415865我没有得到你 –

+0

伙计的每一件事情都很好,但我不知道为什么该循环只是返回所有数据-1。这意味着如果我有4个对象,它返回3对象...例如,我有4列与1名,但它只是返回3第一列或如果我有8列与1名它返回7of主题...总是不会返回我们插入的最后一行数据库 – Erf

相关问题