为什么php的fetch(PDO :: FETCH_ASSOC)只抓取我表的第一列?

时间:2012-11-03 21:03:58

标签: php arrays pdo

以下代码是我的一个类的一部分:

        $stmt = $this->dbh->prepare("SELECT t_id FROM checkOut WHERE t_id = :param1");             
        $stmt->bindParam(':param1', $this->numberIn);
        $stmt->execute();
        $result = $stmt->fetch(PDO::FETCH_ASSOC);
        var_dump($result);
        $this->p_id = $result['p_id'];

我的原始问题是php声明p_id是未定义的索引。为了弄清楚发生了什么,我投入var_dump来查看数组中的内容。出于某种原因,它只包含一个值4,该值对应于第一列的名称t_id。我的MySQL表有四列,我需要所有四列都存在于数组中。为什么我的代码只能抓住第一列的值?

任何帮助将不胜感激。

2 个答案:

答案 0 :(得分:2)

您只获取一个字段:

SELECT t_id FROM checkOut ...
       ^^^^

如果你想要p_id,那么你也必须获取它:

SELECT p_id, t_id FROM checkOut

答案 1 :(得分:1)

您使用SELECT t_id。请改用SELECT *