PDO - Błąd krytyczny: wywołanie funkcji składowej fetch () na nieobiektowym [duplikacie]
To pytanie ma już tutaj odpowiedź:
PDO: Wywołanie funkcji członka fetch () na obiekcie innym niż obiekt? [duplikować] 4 odpowiedzijeśli spróbuję uruchomić następujący kod PHP, otrzymam
Wywołanie funkcji składowej fetch () na obiekcie innym niż obiekt.
Wiesz dlaczego? Używam tego samego kodu w innej witrynie, gdzie działa dobrze.
<?php
$username = ($_GET ['user']);
try {
$dbh = new PDO("mysql:host=localhost;dbname=***", '***', '***');
} catch (PDOException $e) {
echo $e->getMessage();
}
$sth = $dbh->query( "SELECT user, captcha
FROM xf_captcha WHERE user='$username'" );
print_r($sth->fetch());
?>
Edytować:
$sth = $dbh->query( "SELECT username, user_state, last_activity, alerts_unread, conversations_unread, message_count
FROM xf_user WHERE username='$user'" );
$row = $sth->fetch();
Edit2:
Czy to wygląda bezpiecznie, czy powinienem zrobić więcej?
<?php
$username = ($_GET ['user']);
try {
$dbh = new PDO("mysql:host=localhost;dbname=***", '***', '***');
} catch (PDOException $e) {
echo $e->getMessage();
}
$sth = $dbh->prepare("SELECT username, captcha, timestamp
FROM xf_captcha
WHERE username = :username", array(PDO::ATTR_CURSOR => PDO::CURSOR_FWDONLY));
$sth->execute(array(':username' => $username));
print_r($sth->fetch());
?>