Tieni presente che non è un programma "vero" è un progetto d'esame il cui focus non è su php ma sulla progettazione di database. Per cui ecco certe "finezze" non sono richieste. Inoltre non è una pagina di login ma è una pagina di registrazione: in pratica dalla pagina di registrazione gli passo username e password e poi in quella pagina verifico che i campi siano stati compilati (altrimenti mesasggio di errore e ritorno alla pagina precedente) e si prosegue con l'inserimento degli altri campi della registrazione.
Invece in questo pezzo di codice:

Codice PHP:
if (is_null($username) || is_null($password) || strlen($username) < || strlen($password) < 5) {
    echo 
"<script>
        alert('Username e password devono essere di almeno 5 caratteri!');
        window.location.assign('registrazione.php');
        </script>"
;
}
//header("Location: registrazione.php");
else {
    
//query di connessione al db che visualizza il profilo per controllare se lo username inserito è già presente nel sistema
    
try {
        require 
'connessione.php';
        
$sql "SELECT * FROM UTENTE WHERE Username = '".$username."'";
        
$result $dbConn->query($sql);
        
$numRows mysqli_num_rows($result);
    } catch (
PDOException $e) {
        
$alert $e->getMessage();
        echo 
'<script language=JavaScript>alert("Accesso NON riuscito ' $alert ' ! ")</script>';
        echo 
'<script language=javascript>document.location.href="registrazione.php"</script>';
    }

    if (
$numRows 0) {
        echo 
"<script> 
            alert('Username già presente! Inserirne uno diverso e riprovare');
            window.location.assign('registrazione.php');
            </script>"
;
    } else { 
Dopo aver verificato che lo username e la pass non siano vuoti o meno di 5 caratteri, devo controllare se lo username è già presente nel database. Però non va e non riesco a capire perché.
In pratica l'idea è che con numRows controllo se l'interrogazione ha restituito più di 0 righe (il che significa che c'è già uno username con quel nome).
Ma se inserisco uno username già presente ottengo questo errore:

Accesso NON riuscito SQLSTATE[42000]: Syntax error or access violation: 1305 PROCEDURE unibosss.VisualizzaStudio does not exist !

Che riguarda però una sezione che sta più avanti (la procedura in effetti non c'è) ma in realtà dovrei ricevere il messaggio d'errore Username già presente!
Inoltre in sottofondo vedo Warning: mysqli_num_rows() expects parameters 1 to be mysqli result, object given in C:\path_to_my_www_line44.
Non riesco a capire Purtroppo di php so pochissimo, ma devo necessariamente finire questa parte!
Grazie mille.