如何在单个数组中获取php PDO QUERY结果集而不是嵌套在一个数组中

时间:2010-10-23 04:10:21

标签: php mysql join pdo

我需要将查询更改为两个表的JOIN。

$q = "SELECT * FROM table1 AS a JOIN table2 AS b USING(id) WHERE a.id= $id";
$stmt = db::getInstance()->prepare($sql);
return $stmt->fetchAll(PDO::FETCH_ASSOC);

突然之间我无法用$rows['value']引用每一行值 ,但我需要使用$rows[0]['value']

如何避免此行为并在不使用[0]的情况下获取行中的值?

谢谢,理查德

2 个答案:

答案 0 :(得分:1)

如果您只想要一行,请使用PDOStatement::fetch()代替fetchAll()

答案 1 :(得分:0)

我使用以下内容返回一行:

$SQL = "SELECT myColumn FROM myTable";
$STH = $DBH->prepare($SQL);
$STH->execute();
$row = $STH->fetch();
if ($STH->rowCount > 0) {
    $myColumn = $row['myColumn'];
}

我用它来返回多行:

$SQL = "SELECT myColumn FROM myTable";
$STH = $DBH->prepare($SQL);
$STH->execute();
$STH->setFetchMode(PDO::FETCH_ASSOC);
if ($STH->rowCount() > 0) {
    while ($row = $STH->fetch()) {
        $myColumn = $row['myColumn'];
    }
}