lostyazilim
tr.link

mysql veritabanında güncelle yaparken hata (ArgumentCountError)

5 Mesajlar 798 Okunma
acebozum
tr.link

melihonline melihonline WM Aracı Kullanıcı
  • Üyelik 24.11.2018
  • Yaş/Cinsiyet 39 / E
  • Meslek Bilgisayar Teknikeri
  • Konum Antalya
  • Ad Soyad M** K**
  • Mesajlar 91
  • Beğeniler 8 / 7
  • Ticaret 0, (%0)

Merhaba arkadaşlar. Veritabanında güncelleme yaptırıyorum aşağıdaki hatayı veriyor. Veritabanını incelediğimde güncellemeyi de yapmış oluyor. Nerede hata yapıyorum?

Kodlarım

if (isset($_POST['ayar_kaydet'])) {

    $id = 0;
    $ayarkaydet = mysqli_query($baglan, "UPDATE ayarlar SET ayar_title='" . $_POST['ayar_title'] . "', ayar_aciklama='" . $_POST['ayar_aciklama'] . "', ayar_keywords='" . $_POST['ayar_keywords'] . "', ayar_telefon='" . $_POST['ayar_telefon'] . "', ayar_facebook='" . $_POST['ayar_facebook'] . "', ayar_twitter='" . $_POST['ayar_twitter'] . "', ayar_footer='" . $_POST['ayar_footer'] . "' WHERE ayar_id='$id'");

    if (mysqli_affected_rows()) {
        header ("Location:ayarlar.php");
    }else {
        header ("Location:ayarlar.php");
    }


}

Çıkan hata

Fatal error: Uncaught ArgumentCountError: mysqli_affected_rows() expects exactly 1 argument, 0 given in C:\xampp\htdocs\borsatakip\admin\islem.php:13 Stack trace: #0 C:\xampp\htdocs\borsatakip\admin\islem.php(13): mysqli_affected_rows() #1 {main} thrown in C:\xampp\htdocs\borsatakip\admin\islem.php on line 13
 

 

elektronikssl
webimgo

Creatasarim Creatasarim WM Aracı Kullanıcı
  • Üyelik 13.06.2015
  • Yaş/Cinsiyet 40 / E
  • Meslek Yazılım Uzmanı
  • Konum İzmir
  • Ad Soyad A** Ç**
  • Mesajlar 116
  • Beğeniler 41 / 40
  • Ticaret 3, (%100)

melihonline adlı üyeden alıntı

Merhaba arkadaşlar. Veritabanında güncelleme yaptırıyorum aşağıdaki hatayı veriyor. Veritabanını incelediğimde güncellemeyi de yapmış oluyor. Nerede hata yapıyorum?

Kodlarım

if (isset($_POST['ayar_kaydet'])) {

    $id = 0;
    $ayarkaydet = mysqli_query($baglan, "UPDATE ayarlar SET ayar_title='" . $_POST['ayar_title'] . "', ayar_aciklama='" . $_POST['ayar_aciklama'] . "', ayar_keywords='" . $_POST['ayar_keywords'] . "', ayar_telefon='" . $_POST['ayar_telefon'] . "', ayar_facebook='" . $_POST['ayar_facebook'] . "', ayar_twitter='" . $_POST['ayar_twitter'] . "', ayar_footer='" . $_POST['ayar_footer'] . "' WHERE ayar_id='$id'");

    if (mysqli_affected_rows()) {
        header ("Location:ayarlar.php");
    }else {
        header ("Location:ayarlar.php");
    }


}

Çıkan hata

Fatal error: Uncaught ArgumentCountError: mysqli_affected_rows() expects exactly 1 argument, 0 given in C:\xampp\htdocs\borsatakip\admin\islem.php:13 Stack trace: #0 C:\xampp\htdocs\borsatakip\admin\islem.php(13): mysqli_affected_rows() #1 {main} thrown in C:\xampp\htdocs\borsatakip\admin\islem.php on line 13

 

 if (mysqli_affected_rows()) { yerine  if (mysqli_affected_rows($baglan)) {

olarak denermisin, ayrıca 0 olan id'yi 1 yaparsan daha iyi olur.

 

 

melihonline melihonline WM Aracı Kullanıcı
  • Üyelik 24.11.2018
  • Yaş/Cinsiyet 39 / E
  • Meslek Bilgisayar Teknikeri
  • Konum Antalya
  • Ad Soyad M** K**
  • Mesajlar 91
  • Beğeniler 8 / 7
  • Ticaret 0, (%0)

Creatasarim adlı üyeden alıntı

 

 if (mysqli_affected_rows()) { yerine  if (mysqli_affected_rows($baglan)) {

olarak denermisin, ayrıca 0 olan id'yi 1 yaparsan daha iyi olur.

 

Çok teşekkürler oldu 🙂

İzlediğim video kaydında mysqli_affected_rows() kodunda parantez içine veritabanı adını yazmamıştı. Tabi 2017 de çekmiş videoyu. Yine id kısmında da ayarlar da başka kayıt girilmiyor diye 0 yaptım demişti.

 

 

Creatasarim Creatasarim WM Aracı Kullanıcı
  • Üyelik 13.06.2015
  • Yaş/Cinsiyet 40 / E
  • Meslek Yazılım Uzmanı
  • Konum İzmir
  • Ad Soyad A** Ç**
  • Mesajlar 116
  • Beğeniler 41 / 40
  • Ticaret 3, (%100)

melihonline adlı üyeden alıntı

 

Çok teşekkürler oldu 🙂

İzlediğim video kaydında mysqli_affected_rows() kodunda parantez içine veritabanı adını yazmamıştı. Tabi 2017 de çekmiş videoyu. Yine id kısmında da ayarlar da başka kayıt girilmiyor diye 0 yaptım demişti.

 sanırım bu mysql_affected_rows() php 5 sürümde çalışıyordu ancak üst sürümlerde $baglan değişkenini kullanarak hangi bağlantıda ki sorgulama sonucunda etkilenen kayıt satırının belirtilmesi gerekiyor, 0 kısmı ise bazı hostinglerde çalışmayabiliyor mysql yapılandırması ile alakalı sanırım, daha garanti olması açısından sütunda ki id'yi 1 yaparsanız sorun yaşamazsınız.

Daha az kod yazmak ve pdo kullanmak için de https://github.com/tkaratug/titandb-2 burada ki database frameworkunu kullanabilirsiniz, daha iyileri ve güncelleri mevcut fakat uzun zaman kullanan biri olarak sorun yaşamadığımı söyleyebilirim.

 

 

wmaraci
wmaraci

melihonline melihonline WM Aracı Kullanıcı
  • Üyelik 24.11.2018
  • Yaş/Cinsiyet 39 / E
  • Meslek Bilgisayar Teknikeri
  • Konum Antalya
  • Ad Soyad M** K**
  • Mesajlar 91
  • Beğeniler 8 / 7
  • Ticaret 0, (%0)

Creatasarim adlı üyeden alıntı

 sanırım bu mysql_affected_rows() php 5 sürümde çalışıyordu ancak üst sürümlerde $baglan değişkenini kullanarak hangi bağlantıda ki sorgulama sonucunda etkilenen kayıt satırının belirtilmesi gerekiyor, 0 kısmı ise bazı hostinglerde çalışmayabiliyor mysql yapılandırması ile alakalı sanırım, daha garanti olması açısından sütunda ki id'yi 1 yaparsanız sorun yaşamazsınız.

Daha az kod yazmak ve pdo kullanmak için de https://github.com/tkaratug/titandb-2 burada ki database frameworkunu kullanabilirsiniz, daha iyileri ve güncelleri mevcut fakat uzun zaman kullanan biri olarak sorun yaşamadığımı söyleyebilirim.

Tamamdır id değerini 1 yaptım. PDO yu henüz öğrenmedim. Başlardayım :) Gönderdiğiniz linki de inceleyeyim. Çok teşekkürler değerli bilgileriniz için.

 

 

Site Ayarları
  • Tema Seçeneği
  • Site Sesleri
  • Bildirimler
  • Özel Mesaj Al