Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/59.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php、PDO查询、fetch all不返回任何内容_Php_Mysql_Database_Pdo - Fatal编程技术网

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

Php、PDO查询、fetch all不返回任何内容,php,mysql,database,pdo,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($

我试图使用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()
一切都执行得很好,只是fetch,或者
fetchAll()
总是返回空。任何帮助都将不胜感激

您正在尝试在fetchColumn之后获取所有内容

从结果集的下一行返回一列,如果 没有更多的行了

PDOStatement::fetchAll()返回包含所有 结果集中剩余的

所以,你可以这样重写它

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

如果在MySQL监视器中运行SQL语句,您会看到什么?有多少行?假设您的查询只返回一行,
fetch\u column()
正在获取它以提取列数据。当你调用
fetchAll()
时,数据已经被提取出来了,不再有了。^你完全正确,我现在得到了,哈哈,谢谢你,就是这样,我在发布这个问题后也确实找到了答案,哈哈,谢谢你的帮助!和+1表示正确答案!