在我的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");
它会返回当前登录的用户的名字,我看过这个,我认为它肯定会工作,但当使用它返回没有数据。没有错误,只是没有数据。
您正在执行查询,但您没有使用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'];
}
EDIT:看到它应该返回单个结果,我将使用fetch()方法返回语句下一行的内容,在本例中为单行结果。
$result = $resource->fetch(PDO::FETCH_ASSOC); //This does the magic
$this->firstname = $result['firstName'];
$this->lastname= $result['lastName'];