为什么fetchAll()返回一个空数组?

时间:2017-11-06 02:44:37

标签: php mysql arrays

最终,我的目标是返回整数locationID。但是从SQL语句返回的Array是空的。 SQL语句只返回一行,我在phpMyAdmin中检查过。我还确保我的参数输入正确。为什么数组是空的?我试图从我的数据库中的一个相关行返回数据,我认为它将是$ result [0]或$ result ['cityID'](也就是我正在尝试的行数据列的名称)返回)但是没有工作,我假设因为数组是空的,但我无法弄清楚为什么它是空的......我错过了什么?提前谢谢。

public function getLocationID($frmtCity, $frmtState){
    $sql = 'SELECT cityID FROM city WHERE city.name = :name AND city.stateID = :state';

    $queryStmt = $this -> conn -> prepare($sql);

    if($queryStmt -> execute(array(':name'=>$frmtCity, ':state'=>$frmtState)) ){

        $result = $queryStmt -> fetchAll(PDO::FETCH_ASSOC);

        print_r($result);
    }
}

1 个答案:

答案 0 :(得分:-2)

你应该试着这么简单:

public function getLocationID(){
$sql = 'SELECT cityID FROM city WHERE city.name = :name AND city.stateID = :state';

$queryStmt = $this -> conn -> query($sql);

if($queryStmt->rowCount() > 0) ){

    $result = $queryStmt -> fetchAll(PDO::FETCH_ASSOC);

}else{
    $result = 0;
} 
return $result;
}