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

  • Creatore Discussione Creatore Discussione GGG
  • Data di inizio Data di inizio

GGG

Nuovo Utente
31 Ago 2016
33
0
6
29
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;
}
 
proverei con una coppia di parentesi in più
PHP:
($mysqli->query("SELECT FROM Account WHERE Nickname='$nick'"))->num_rows()
 
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"
 
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
 
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;
}
//..
 
ciao
ops
"SELECT * FROM Account WHERE Nickname='$nick'"
o al post di * il nome/i del/i campo/i che devi estrarre
 
Ultima modifica:
Ciao, scusate se insisto ma quando il result è false c'è un errore SQL
PHP:
<?php
if(!$ris) {
    echo "Errore SQL : " . $mysqli->error;
}
 
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()
 

Discussioni simili