[RISOLTO][PHP] Call to a member function num_rows() on a non-object

Discussione in 'PHP' iniziata da GGG, 9 Febbraio 2017.

  1. GGG

    GGG Nuovo Utente

    Registrato:
    31 Agosto 2016
    Messaggi:
    29
    Mi Piace Ricevuti:
    0
    Punteggio:
    1
    Sesso:
    Maschio
    Salve, ho questo problema: mi da questo errore: Call to a member function num_rows() on a non-object
    Il codice della pagina è questo:
    PHP:
    if($mysqli->query("SELECT FROM Account WHERE Nickname='$nick'")->num_rows() === "1"){
    echo 
    "<strong>Nickname già utilizzato</strong>";
    $reg False;
    }
     
  2. marino51

    marino51 Utente Attivo

    Registrato:
    28 Febbraio 2013
    Messaggi:
    1.827
    Mi Piace Ricevuti:
    67
    Punteggio:
    48
    Occupazione:
    free lance
    Località:
    Lombardia
    proverei con una coppia di parentesi in più
    PHP:
    ($mysqli->query("SELECT FROM Account WHERE Nickname='$nick'"))->num_rows()
     
  3. borgo italia

    borgo italia Super Moderatore Membro dello Staff SUPER MOD MOD

    Registrato:
    4 Febbraio 2008
    Messaggi:
    15.694
    Mi Piace Ricevuti:
    126
    Punteggio:
    63
    Sesso:
    Maschio
    Località:
    PR
    Home Page:
    ciao
    intanto perchè non dividi le due cose, io sono un po' contrario alle istruzioni dentro istruzioni
    PHP:
    //...
    $ris $mysqli->query("SELECT FROM Account WHERE Nickname='$nick'");
    if(
    $ris->num_rows()===1){
        echo 
    "<strong>Nickname già utilizzato</strong>";
        
    $reg False;
    }
    //..
    poi un piccolo particolare
    num_rows(), o mysqli_num_rows nel procedurale, restituisce un intero quindi
    num_rows() non sarà mai uguale al valore e tipo "1", quindi o
    num_rows()===1
    o ambedue nel caso di non confrontando anche il tipo
    num_rows()==1 a num_rows()=="1"
     
  4. GGG

    GGG Nuovo Utente

    Registrato:
    31 Agosto 2016
    Messaggi:
    29
    Mi Piace Ricevuti:
    0
    Punteggio:
    1
    Sesso:
    Maschio
    Le parentesi in più non funzionano (Mi dice unexpected T_OBJECT_OPERATOR) e avevo già provato a metterlo in un altra variabile e fare il num_rows() su quella ma mi dava lo stesso errore.
    Nell' if ho l'ho messo senza virgolette come hai detto tu, grazie
     
  5. borgo italia

    borgo italia Super Moderatore Membro dello Staff SUPER MOD MOD

    Registrato:
    4 Febbraio 2008
    Messaggi:
    15.694
    Mi Piace Ricevuti:
    126
    Punteggio:
    63
    Sesso:
    Maschio
    Località:
    PR
    Home Page:
    ciao
    hai risolto?
    se no metti un var_dump per vedere se la query funziona (se si dovrebbe darti resuorce...)
    PHP:
    //...
    $ris $mysqli->query("SELECT FROM Account WHERE Nickname='$nick'");
    var_dump($ris);//guarda cosa ti riporta
    if($ris->num_rows()===1){
        echo 
    "<strong>Nickname già utilizzato</strong>";
        
    $reg False;
    }
    //..
     
  6. GGG

    GGG Nuovo Utente

    Registrato:
    31 Agosto 2016
    Messaggi:
    29
    Mi Piace Ricevuti:
    0
    Punteggio:
    1
    Sesso:
    Maschio
    no non ho risolto, restituisce bool(false)
     
  7. borgo italia

    borgo italia Super Moderatore Membro dello Staff SUPER MOD MOD

    Registrato:
    4 Febbraio 2008
    Messaggi:
    15.694
    Mi Piace Ricevuti:
    126
    Punteggio:
    63
    Sesso:
    Maschio
    Località:
    PR
    Home Page:
    ciao
    ops
    "SELECT * FROM Account WHERE Nickname='$nick'"
    o al post di * il nome/i del/i campo/i che devi estrarre
     
    Ultima modifica: 11 Febbraio 2017
  8. criric

    criric Super Moderatore Membro dello Staff SUPER MOD MOD

    Registrato:
    21 Agosto 2010
    Messaggi:
    5.594
    Mi Piace Ricevuti:
    54
    Punteggio:
    48
    Località:
    TN
    Ciao, scusate se insisto ma quando il result è false c'è un errore SQL
    PHP:
    <?php
    if(!$ris) {
        echo 
    "Errore SQL : " $mysqli->error;
    }
     
  9. borgo italia

    borgo italia Super Moderatore Membro dello Staff SUPER MOD MOD

    Registrato:
    4 Febbraio 2008
    Messaggi:
    15.694
    Mi Piace Ricevuti:
    126
    Punteggio:
    63
    Sesso:
    Maschio
    Località:
    PR
    Home Page:
    ciao @criric
    si c'è un errore manca l'indicazione dei campi
     
  10. GGG

    GGG Nuovo Utente

    Registrato:
    31 Agosto 2016
    Messaggi:
    29
    Mi Piace Ricevuti:
    0
    Punteggio:
    1
    Sesso:
    Maschio
    Ho risolto, non avevo messo l'* prima di FROM, poi mi sono ricordato di un codice scritto tempo fa e ho usato ->num_rows , e non ->num_rows()
     
Sto caricando...

Condividi questa Pagina