Olmayan bir nesne üzerinde bir üye işlev fetch_assoc () için çağrı

3 Cevap

Ben süper bir acemi değilim. Burada ilgili soruları buldum ama benim becerileri için çok gelişmiş olduğunu düşünüyorum. :-(

İşte benim fonksiyonu bulunuyor:

function get_fname($un){

$registerquery = $this->conn->query("SELECT f_name FROM tz_members WHERE 
                     usr='".$un."'");

while ($row = $registerquery->fetch_assoc()) { 
    return $fname = $row[$un];
    }
}

Herhangi bir yardım plsss?


Ben bir editörü vardır çünkü benim kendi soruyu yanıtlamak için seçtim, özür dileriz.

@ Mark Baker:

<?php
    require_once 'Mysql.php'; 
    $mysql = new Mysql(); 

?>
<html>
  <head>
  </head>
    <body>
      <h4><?php echo $mysql->get_fname("joann"); ?></h4>
    </body>
</html>

Ben bunu yapıyorum nasıl ...

3 Cevap

Bu sorgu başarısız olduğu görülüyor. Çünkü bu durumda query döner false. Yani bu deneyin:

$registerquery = $this->conn->query("SELECT f_name FROM tz_members WHERE 
                 usr='".$un."'");
if ($registerquery) {
    while ($row = $registerquery->fetch_assoc()) { 
        return $fname = $row[$un];
    }
}

$un (' gibi veya \) dizesi beyanı kırmak karakterler içeriyorsa arızası sorgudaki bir sözdizimi hatası neden olabilir. Karakterlerin bunu önlemek için kaçmak için MySQLi::real_escape_string kullanmalısınız.

Ayrıca, bir fonksiyon, sadece bir kez bir değer döndürebilir. Yani while ilk satırdan sonra iptal edilecektir.

$fname = $row[$un]; is assigning the value in $row[$un] to the variable $fname, then returning the result. It's pointless doing that assignment to $fname because $fname is simply a local variable within the function.... if it's defined as global, then it's not good programming practise.

Echo $ mysql-> get_fname ("joann") size nasıl $ mysql ayarı daha sonra, () fonksiyonu get_fname aradığınız hat ise?

Veritabanı sorgu sorgu için geçerli herhangi bir sonuç bulamazsa Ve eğer olur ne düşünüyorsunuz?

Bu bağlamda bir tablo adı vermek unuttum mümkün mü?

$ Conn = new mysqli ('localhost', 'root', 'password', 'BURADA HİÇBİR DEĞERİ?');