У меня проблема с моим PHP-скриптом. Мне нужно, чтобы получить всю информацию о пользователе. Я действительно не вижу, в чем проблема, но если я делаю echo $userInfo->username;
это ничего не показывает. Я получил соединение с базой данных.
Функция userInfo ():
function userInfo(){
try {
$stmt = $this->_db->prepare('SELECT * FROM members WHERE username = :username');
$stmt->execute(array('username' => $_SESSION['username']));
$row = $stmt->fetch(PDO::FETCH_OBJ);
$username = $row->username;
$firstname = $row->firstname;
$lastname = $row->lastname;
$worktitle = $row->worktitle;
$email = $row->email;
$admin = $row->admin;
$address = $row->address;
$city = $row->city;
$zipcode = $row->zipcode;
$phone = $row->phone;
return array(
'username' => $username,
'firstname' => $firstname,
'lastname' => $lastname,
'worktile' => $worktitle,
'email' => $email,
'admin' => $admin,
'address' => $address,
'city' => $city,
'zipcode' => $zipcode,
'phone' => $phone
);
} catch(PDOException $e) {
echo '<p class="warning">'.$e->getMessage().'</p>';
}
}
Ваша функция возвращает ассоциативный массив, но из вашего описания вы получаете доступ к возвращаемому значению как к объекту.
Если вы хотите получить доступ к возвращаемому значению как к объекту, напишите функцию следующим образом:
function userInfo() {
try {
$stmt = $this->_db->prepare('SELECT * FROM members WHERE username = :username');
$stmt->execute(array('username' => $_SESSION['username']));
$row = $stmt->fetch(PDO::FETCH_OBJ); // fetch as object
return $row;
} catch(PDOException $e) {
echo '<p class="warning">'.$e->getMessage().'</p>';
}
}
$userInfo = userInfo();
echo $userInfo->username; // object syntax
Если вы хотите получить доступ к возвращаемому значению как к массиву, напишите функцию следующим образом:
function userInfo() {
try {
$stmt = $this->_db->prepare('SELECT * FROM members WHERE username = :username');
$stmt->execute(array('username' => $_SESSION['username']));
$row = $stmt->fetch(PDO::FETCH_ASSOC); // fetch as array
return $row;
} catch(PDOException $e) {
echo '<p class="warning">'.$e->getMessage().'</p>';
}
}
$userInfo = userInfo();
echo $userInfo["username"]; // associative array syntax
Других решений пока нет …