ynR adlı üyeden alıntı: mesajı görüntüle
daha sağlıklı bir kod istersen paylaşiyorum çok karmaşik geldi gözüme ne hatası geldiği de belli değil

<?php

if(!empty($_POST)){

$id = $_GET["id"];
$haber_baslik = $_POST['haber_baslik'];
$haber_aciklama = $_POST['haber_aciklama'];
$sayfa_baslik = $_POST['sayfa_baslik'];
$sayfa_aciklama = $_POST['sayfa_aciklama'];
$sayfa_anahtar = $_POST['sayfa_anahtar'];
$foto = $_POST['foto'];

if ($_FILES['foto']['tmp_name'] != "") {
$boyut = $_FILES['foto']['size'];
if ($boyut > (1024 * 1024 * 30)) {
echo 'Dosya 30MB den büyük olamaz.';

} else {

$tip = $_FILES['foto']['type'];
$isim = $_FILES['foto']['name'];
$uzanti = explode('.', $isim);
$uzanti = $uzanti[count($uzanti) - 1];
$random = rand();
$dosya = $_FILES['foto']['tmp_name'];
$foto_url = $random . "." . $uzanti;

copy($dosya, '../img/' . $foto_url);
echo ' <div class="card-body collapse show" id="collapse8">
<div class="error-notice">
<div class="oaerror success">
<strong>Başarılı :</strong> - Belirtilen veriler düzenlenmiştir. <a href="haber-liste.php">Buradan Haber Listesine Erişebilirsiniz</a>
</div>
</div>
</div>';

$settings = $dbh->prepare("UPDATE haber SET foto = '".$foto_url."' WHERE id = '".$id."'");
$settings->execute();
}
}

$update = $dbh->prepare("UPDATE haber SET haber_baslik = '".$haber_baslik."',haber_aciklama = '".$haber_aciklama."',sayfa_baslik = '".$sayfa_baslik."',sayfa_aciklama = '".$sayfa_aciklama."',sayfa_anahtar = '".$sayfa_anahtar."' WHERE id = '".$id."'");

$update->execute();
}

?>
Eğer bu cevap işini görmez ise @ErtugrulSaruhan; $update değişkeninin hemen alt satırına aşağıdaki kodu yazıp ekrana gelen query string değerini buradan paylaşırsan gelen değerleri en azından görmüş oluruz ayrıca çıkan query string direk MYSQL üzerinde çalıştırırsan kodun çalışıp çalışmadığınıda görürsün.

echo $result->queryString;exit();