使用PDO从数据库获取数据

时间:2013-02-25 10:48:51

标签: php pdo

我有一个问题,我无法弄清问题是什么,显然我忽视了一些事情。请参阅以下代码。

<?php
class CompanyContact
{

    //fields;
    private $iID;
    private $sFirstName;
    private $sInfix;
    private $sLastName;
    private $sPhoneNumber;
    private $sEmail;

    private $dbCon;

    public function __construct(){


        $sQuery = "SELECT * FROM company_contact";
        $this->dbCon = Registry::get('oDb')->prepare($sQuery);
        $this->dbCon->execute();


        $data = $this->dbCon->fetchAll(PDO::FETCH_ASSOC);

        echo "<pre>";
        print_r($data);
        echo "</pre>";

        $this->iID = $data['id'];

    }

    public function getFirstName(){
        return $this->sFirstName;
    }


}

当我打印$ data时,我看到输出。但问题是当我想输出用户的id时。然后我收到以下错误:注意:未定义的索引:id

在我的控制器中我有以下代码:

<?php 
$c = new CompanyContact();
$oTemplate->assign("contacts",$c);
?>

在我看来我想要这个

<?php
  foreach($this->var['contacts'] as $contacts){
  echo $contacts->getFirstName();
}
?>

我知道在您的视图中使用PHP并不是最好的意图,但我正在使用我公司自己制作的MVC框架,所以它有点废话。预先感谢。

2 个答案:

答案 0 :(得分:1)

只获取第一个ID

$this->iID = $data[0]['id'];

适用于所有

foreach($data as $d) {
 echo $d['id']
}

答案 1 :(得分:0)

这是多维数组,因为$this->dbCon->fetchAll(PDO::FETCH_ASSOC);将返回所有行

$ this-&gt; iID = $ data [0] ['id'];