Fatal error: Uncaught Error: Cannot use object of type PDOStatement as array in C:\xampp\htdocs\adminli\admin\db\login_islemler.php:48 Stack trace: #0 {main} thrown in C:\xampp\htdocs\adminli\admin\db\login_islemler.php on line 48
merhabalar php ile şifre değiştirme işlemi yaptığımda yukarıdaki hatayı alıyorum. nerede hata yapıyorum yardım olabilir misiniz ?
/* Şifre Unuttum Form*/
if(isset($_POST['sifreGuncelle']))
{
$user_name=$_POST['user_name'];
$usernameCek=$db->prepare("select * from users where username=? order by user_id ");
$usernameCek->execute(array($user_name));
$usernameCek->fetch(PDO::FETCH_ASSOC);
$user=$usernameCek['user_id']; ///hata aldıgım yer burası
echo $user;
exit();
$guvenlik_pass=md5($_POST['guvenlik_pass']);
$yeni_pass=md5($_POST['yeni_pass']);
$yeni_pass_dogrulama=md5($_POST['yeni_pass_dogrulama']);
if($guvenlik_pass and $yeni_pass and $yeni_pass_dogrulama)
{
if($yeni_pass==$yeni_pass_dogrulama)
{
$user_Kontrol=$db->prepare("update user set user_pass=:user_pass where user_id=:id");
$user_Kontrol->execute(array($yeni_pass));
$passUpdate=$user_Kontrol->fetch(PDO::FETCH_ASSOC);
if($passUpdate)
{
header("Location:../production/index.php");
}
}
}
}
Merhaba. Bir PDOStatement objesini dizi gibi okumaya çalışıyorsunuz.
$usernameCek->fetch(PDO::FETCH_ASSOC);
yerine
$usernameCek = $usernameCek->fetch(PDO::FETCH_ASSOC);
yazdığınızda, PDOStatement objesini taşıyan $usernameCek
değişkeninin değerini fetch()
fonksiyonundan dönen array ile değiştirmiş olacaksınız.