PHP SQL 查询未返回与 phpMyAdmin 中相同的行
PHP SQL query not returning same rows as in 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
这 returns 五行 (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 行:
$apps = $stmt->fetch(PDO::FETCH_ASSOC);
改用fetchAll
:
$apps = $stmt->fetchAll(PDO::FETCH_ASSOC);
这是 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
这 returns 五行 (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 行:
$apps = $stmt->fetch(PDO::FETCH_ASSOC);
改用fetchAll
:
$apps = $stmt->fetchAll(PDO::FETCH_ASSOC);