Эй, ребята, у которых небольшая проблема с PDO в php, поскольку возвращаемая ошибка является неопределенным индексом. Код функции и запроса и возврата результата заключается в следующем:PHP-базы данных PDO-соединения
function getUserDetails($user) {
$db = connect();
try {
$stmt = $db->prepare('SELECT name,addr AS address,team
FROM TreasureHunt.Player LEFT OUTER JOIN TreasureHunt.MemberOf ON (name=player)
LEFT OUTER JOIN TreasureHunt.PlayerStats USING (player)
WHERE name=:user');
$stmt->bindValue(':user', $user, PDO::PARAM_STR);
$stmt->execute();
$results = $stmt->fetchAll();
$stmt->closeCursor();
} catch (PDOException $e) {
print "Error : " . $e->getMessage();
die();
}
return $results;
}
Однако при выполнении кода страницы индекса я получаю сообщение об ошибке: Примечание: Не определено индекс: имя
Код для индекс таков:
try {
$details = getUserDetails($_SESSION['player']);
echo '<h2>Name</h2> ',$details['name'];
echo '<h2>Address</h2>',$details['address'];
echo '<h2>Current team</h2>',$details['team'];
echo '<h2>Hunts played</h2> ',$details['nhunts'];
echo '<h2>Badges</h2>';
foreach($details['badges'] as $badge) {
echo '<span class="badge" title="',$badge['desc'],'">',$badge['name'],'</span><br />';
}
} catch (Exception $e) {
echo 'Cannot get user details';
}
мой вопрос, почему он бросает уведомление и как мне обойти эту проблему?
Что делает '$ db = connect();' do? Как вы связываетесь с db? Каково содержание ошибки? Вы ставите слишком мало деталей. – Robert
Проверьте, что вы получаете, используя 'var_dump ($ details);'. ** Примечание: ** В выражении echo concat с '.' (dot) & not by', ' – Rikesh
Уведомление может быть вызвано, потому что нет правильных результатов, и в цикле вы используете' $ details ['badges'] 'и т. Д. которые не могут быть назначены. Поскольку @Rikesh предлагает использовать var_dump или print_r ($ details) и показывать результаты. – Robert