İyi günler tablo sorgusu için hazırladığım fonksiyondan aldığım çıktı ile sorgu yapmaya çalışıyorum Try bloğu çalışıyor ancak veritabanında veri güncellemiyor sorguyu elle girdim yine aynı sizce sorun ne olabilir = takılıdım
else
{
$hata=null;
$sx=COUNT($durumsor);
$sb=$sx-1;//Dizi değerden geldiği için dizilerde indis 0 dan başladığı için 1 eksik çekiyoruz
for($a=0; $a<=$sb; $a++)
{
if($a==0)
{
$sql="\"update siteayar set ".$durumsor[$a].",";
$ext="\"".$extsor[$a]."\"=>\"".$degersor[$a]."\",";
}
elseif($a!=$sb)
{
$sql .= $durumsor[$a].",";
$ext .= "\"".$extsor[$a]."\"=>\"".$degersor[$a]."\",";
}
else
{
$sql .= $durumsor[$a]."\"";
$ext .= "\"".$extsor[$a]."\"=>\"".$degersor[$a]."\"";
}
}
//return(array($sql,$ext));
return ($this->kaydet($sql,$ext));
}
}
Array
(
[0] => "update siteayar set siteadi=:siteadial,slogan=:sitebaslik,description=:acikla,hakkinda=:hakkindalani,copright=:telif,logo=:favicon"
[1] => "siteadial"=>"Acilsağlık.Net","sitebaslik"=>"Sağlık Hesaplama Araçlarıaa","acikla"=>"","hakkindalani"=>"","telif"=>"Tüm hakları saklıdır ","favicon"=>""
)
Kodun çıktı hali try bloğu çalışıyor veritabanında işlemiyor hata nerdedir? çıktı olarak verdiği çıktıdan deneme yaptım işliyor :(
private function kaydet($sql,$ext)
{
try
{
$sor=$this->vt()->prepare($sql);
$sor->execute(array($ext));
$durum="Güncelleme başarılı";
}
catch(PDOException $i)
{
$hata="K-0003";
$durum="Hata Detayı ".$i->getMessage();
}
if(!isset($hata))
{
return(array("durum"=>$durum));
}
else
{
return(array("hata"=>$hata,"durum"=>$durum));
}
}
::::::::: Çözüm ::::::::::::::::::
Yukarıda vermiş olduğum else bloğunu değiştirin :)
else {
$sql = array();
$ext = array();
for ($a = 0; $a < count($durumsor); $a++) {
$sql[] = $durumsor[$a];
$ext[$extsor[$a]] = $degersor[$a];
}
$sql = implode(', ', $sql);
return self::kaydet($sql, $ext);
}
Kaydet fonksiyonunu güncelleyin
private function kaydet($sql,$ext)
{
try
{
$ssql="update siteayar set ".$sql."";
$sor=$this->vt()->prepare($ssql);
$sor->execute($ext);
$durum="Güncelleme başarılı";
}
catch(PDOException $i)
{
$hata="K-0003";
$durum="Hata Detayı ".$i->getMessage();
}
if(!isset($hata))
{
return(array("durum"=>$durum));
}
else
{
return(array("hata"=>$hata,"durum"=>$durum));
}
}
Bu çözüme iğrenç ötesi ingilizcemle ulaştım :) Stackoverflow Teşekkürler num8er :D