在配置文件获取中使用参数

时间:2015-09-20 20:59:04

标签: php

我在DUser课程中有一个函数,我想接受参数。

        public function UserProfile($arg) {
                $query = <<<SQL
                SELECT firstName,lastName
                FROM {$this->tprefix}profile
                WHERE id = :thissession
SQL;
            $resource = $this->db->db->prepare( $query );
            $resource->execute( array (
            ':thissession'  => $_SESSION['id'],
            ));
            foreach($resource as $row) {
                $this->firstname = $row['firstName'];
                $this->lastname = $row['lastName'];
            }
            switch($arg) {
                case 'firstname':
                echo $this->firstname;
                break;
                case 'lastname':
                echo $this->lastname;
                break;
            }
        }

有了这个,我希望用户能够运行

<?php $users = new DUser();
$users->UserProfile("firstname");

它将返回当前登录的用户的名字,我已经看过了,我认为它确实可行,但是在使用时它不会返回任何数据。不是错误或任何事情,根本就没有数据。 = /如果有人发现写这种方式有任何问题,我将不胜感激。

1 个答案:

答案 0 :(得分:2)

您正在执行查询,但您并未使用其中一种PDO方法(如PDOStatement :: fetch()或:: fetchAll())来搜索结果。此方法的可选参数是您想要对象或数组等等。

http://php.net/manual/en/pdostatement.fetchall.php

$resource = $this->db->db->prepare( $query );// YOU SURE IS db->db->prepare()???
$resource->execute( array (
       ':thissession'  => $_SESSION['id'],
        ));

$result =  $resource->fetchAll(PDO::FETCH_ASSOC); //This does the magic
foreach($result as $row) {
    $this->firstname = $row['firstName'];
    $this->lastname = $row['lastName'];
}

编辑:看到它应该返回一个结果,我会使用方法fetch()返回语句的下一行的内容,在本例中是单行结果。

$result =  $resource->fetch(PDO::FETCH_ASSOC); //This does the magic
$this->firstname = $result['firstName'];
$this->lastname= $result['lastName'];