Chu*_*utt 3 php mysql arrays methods
为什么我的方法只返回表格的第一行?我无法理解为什么,它让我疯狂.我确信这很简单.
public function getTitlesForRegistrationForm() {
$result = $this->_db->query("SELECT UserTitleID, UserTitleName FROM UserTitles");
$i=0;
$array[0] = "No result";
foreach($result->fetch(PDO::FETCH_ASSOC) as $row){
$array[$i] = $row;
$i++;
}
return $array;
}
Run Code Online (Sandbox Code Playgroud)
谢谢.
这可能是因为您的$result->fetch()调用不返回可迭代值,而是返回结果行或FALSE.PHP foreach仅适用于可迭代值.将代码更新为类似的东西应该可以解决问题:
public function getTitlesForRegistrationForm() {
$result = $this->_db->query("SELECT UserTitleID, UserTitleName FROM UserTitles");
$i=0;
$array[0] = "No result";
while (($row = $result->fetch(PDO::FETCH_ASSOC)) !== FALSE) {
$array[$i] = $row;
$i++;
}
return $array;
}
Run Code Online (Sandbox Code Playgroud)