Php,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($stmt->fetchColumn() > 0){
        echo "Found";
        $result = $stmt->fetchAll(PDO::FETCH_ASSOC);
        print_r($result);
    }else{
        echo "Not found";
    }
}else{
    echo "Error";
}

语句成功执行,它找到了一列,就像它应该的那样,它回显“找到”,但是数组出现为空,它只是出现为 array() 一切都执行嗯,只是 fetch,或者 fetchAll() 总是返回空。任何帮助将不胜感激!

最佳答案

您正在尝试在 fetchColumn 之后获取全部。

fetchColumn

Returns a single column from the next row of a result set or FALSE if there are no more rows.

fetchAll

PDOStatement::fetchAll() returns an array containing all of the remaining rows in the result set.

因此,您可以像这样重写它。

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

关于Php,PDO 查询,获取所有返回无,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27595698/

相关文章:

php - 没有命名参数的 Symfony 通配符主机路由

php - mysql_query()期望参数2为资源,字符串在[duplicate]中给出

mysql - 带或不带括号的求和和比较

mysql - SQL 限制总数与限制列

java - 是否有一个参数可以加速Sybase插入

php - Eloquent 渴望加载

php - Eloquent 查询构建器 if 子句实现

html - 删除 HTML 标签但仍允许特殊字符

mysql - 服务器场如何处理数据库?

node.js - NodeJS + MongoDB : find() where { 'value' : < 5 AND >1} - how?