2015-03-25 78 views
1

这是在phpMyAdmin运行查询:PHP SQL查询不返回相同的行如在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查询返回的所有行?

+0

http://php.net/manual/en/pdostatement.fetch.php:PDOStatement对象::提取 - 从结果集中提取下一行。 – Masiorama 2015-03-25 08:15:20

+0

尝试使用fetchAll函数。 – 2015-03-25 08:15:26

回答

4

仅低于该行取1行:

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

使用fetchAll代替:

$apps = $stmt->fetchAll(PDO::FETCH_ASSOC); 
相关问题