Php,PDO查询,fetch all返回任何内容

时间:2014-12-22 01:58:22

标签: php mysql database pdo

我正在尝试使用fetchALL()从Select语句中获取结果,但由于某种原因没有任何工作。以下是代码示例:

$vars = array(':name' => $_POST['name'], ':id' => $_POST['id']);

$stmt = $dbh->prepare("SELECT * FROM temp_table WHERE name=:name AND id=:id");

if($stmt->execute($vars)){
    if($stmt->fetchColumn() > 0){
        echo "Found";
        $result = $stmt->fetchAll(PDO::FETCH_ASSOC);
        print_r($result);
    }else{
        echo "Not found";
    }
}else{
    echo "Error";
}

语句成功执行,它找到一个列,就像它应该的那样,并且它回显“Found”,但是数组出现为空,它只是出现array()一切都运行良好,就是这样获取,或fetchAll()始终返回空。任何帮助将不胜感激!

1 个答案:

答案 0 :(得分:2)

你试图在fetchColumn之后fetchAll。

fetchColumn

  

从结果集的 next 行返回单个列,如果是,则返回FALSE   没有更多的行。

fetchAll

  

PDOStatement :: fetchAll()返回一个包含所有内容的数组   结果集中的剩余行。

所以,你可以像这样重写它。

 if($result = $stmt->fetchAll(PDO::FETCH_ASSOC)){
        echo "Found";
        print_r($result);
 }else{
        echo "Not found";
 }