У меня есть следующая проблема с pg_fetch_array(), это код:PG_FETCH_ARRAY() не возвращает данные
//Controllo utente
$u= "SELECT FROM utente WHERE idutente = '$username' and password= '$password'";
$result = pg_query($db,$u) or die(pg_last_error());
//Controllo query
if(!$result) {echo "problemi con la query"." ".$u;}
$tuplaUtente = pg_fetch_array($result);
//Numero di tuple
if($tuplaUtente === false) {echo "error fetch";}
else
{ echo $tuplaUtente['idutente'];
echo "else";
}
pg_close();
Этот код показывает только «еще», несмотря на использование PgAdmin «$ U» запрос возвращает корректный результат.
Infact, если я типа в последний еще:
else
{
var_dump($tuplaUtente);
echo $u;
echo "else";
}
}
pg_close();
Он показывает "массив (0) {} SELECT FROM WHERE utente idutente = 'USR' и пароль =«pwd'else".
Вы проверяете '$ tuplaUtente === false' - это проверяет, является ли' $ tuplaUtente' логическим false, что ваш var_dump показывает, что это не так: вы получаете пустой массив, а не false. Я подозреваю, что ваш запрос не находит достоверных результатов, в отличие от сбоев. – andrewsi
Попробуйте 'echo pg_num_rows ($ result)', чтобы убедиться, что были возвращены записи. – Jerrad
Спасибо, я изменил else в этом режиме: { echo "else". "С номером" .pg_num_rows ($ result). "". $ Tuplautente ['idutente']; } Он возвращает: «еще с номером 1». –