PHP SQL查询不返回与phpMyAdmin中相同的行

时间:2015-03-25 08:11:34

标签: php mysql sql phpmyadmin

这是在phpMyAdmin中运行的查询:

SELECT app . * 
FROM  `tap_applications` app,  `tap_jobs` job
WHERE job.id = app.job_id
AND job.closed =0
AND job.user_id =1

这会返回五行(Showing rows 0 - 4 ( 5 total, Query took 0.0008 sec)),我可以看到行是正确的。

这是执行查询的PHP代码:

$id=1;
$stmt = $dbh->prepare('SELECT app.* 
                         FROM `tap_applications` app, `tap_jobs` job 
                        WHERE job.id = app.job_id
                          AND job.closed = 0
                          AND job.user_id=?');
if($stmt->execute(array($id))){
    $apps = $stmt->fetch(PDO::FETCH_ASSOC);
    echo '<pre>'; print_r($apps); exit();
}

输出:

Array
(
    [id] => 2
    [job_id] => 6
    [name1] => Ben
    [name2] => //redacted
    [tel] => //redacted
    [email] => //redacted
    [cv] => 6-Ben1424692150.pdf
    [seen] => 0
    [time] => 2015-02-23 11:57:33
    [decision] => 1
)

为什么不输出SQL查询返回的所有行?

1 个答案:

答案 0 :(得分:4)

以下这一行只获取1行:

$apps = $stmt->fetch(PDO::FETCH_ASSOC);

改为使用fetchAll

$apps = $stmt->fetchAll(PDO::FETCH_ASSOC);