Visualizzazione risultati 1 fino 4 di 4

Discussione: Fatal Error poco chiaro

  1. #1
    exlot non è connesso Utente giovane
    Data registrazione
    14-06-2016
    Messaggi
    38

    Predefinito Fatal Error poco chiaro

    Purtroppo non comprendo l'errore :

    Fatal error: Uncaught Error: Call to a member function fetch_array() on boolean in /membri/exlot/include/home/index.php:14 Stack trace: #0 /membri/exlot/index.php(42): include() #1 {main} thrown in /membri/exlot/include/home/index.php on line 14

    Codice PHP:
    $sql = 'SELECT COUNT(*) FROM t_utenti';
    $result = mysqli_query($dbLink,$sql);
    $row = $result->fetch_array(MYSQLI_NUM);
    echo
    'Utenti registrati: '.$row[0].' ';
    mysqli_free_result($result);

    echo
    '<br/>';

    $sql = "SELECT COUNT(*) FROM t_utenti WHERE log!='0000-00-00 00:00:00'";
    $result = mysqli_query($dbLink,$sql);
    $row = $result->fetch_array(MYSQLI_NUM); // ERRORE QUI
    echo 'Utenti collegati: '.$row[0].' ';
    mysqli_free_result($result);

    mysqli_close($dbLink);
    Ultima modifica di exlot : 29-11-2018 alle ore 20.15.52

  2. #2
    mzanella non è connesso AlterGuru
    Data registrazione
    29-12-2015
    Messaggi
    1,954

    Predefinito

    Il messaggio d'errore riporta che stai cercando di invocare il metodo fetch_array su un valore booleano anziché un oggetto. L'oggetto di invocazione è $result, il cui valore è quello restituito da mysqli_query, la cui documentazione indica che viene restituito il valore booleano false in caso di errore.

    Devi sempre controllare la presenza di errori nel codice che scrivi, per esempio:
    Codice PHP:
    $result = mysqli_query($dbLink, $sql);
    if (!
    $result) {
    die(
    mysqli_error($dbLink));
    }
    $row = $result->fetch_array(MYSQLI_NUM);
    Questo produrrà un messaggio d'errore più chiaro grazie al quale sarai in grado di capire cosa c'è che non va.

    Un'altra osservazione, per eseguire la query stai chiamando la funzione mysqli_query, per manipolare i risultati usi invece i metodi: stai mescolando l'interfaccia procedurale di mysqli con quella ad oggetti. Questo è sconsigliato e può causare errori, scegli uno dei due approcci e sii consistente con quello.

    I suggerimenti che do più spesso:


  3. #3
    exlot non è connesso Utente giovane
    Data registrazione
    14-06-2016
    Messaggi
    38

    Predefinito

    Citazione Originalmente inviato da mzanella Visualizza messaggio
    stai mescolando l'interfaccia procedurale di mysqli con quella ad oggetti. Questo è sconsigliato e può causare errori, scegli uno dei due approcci e sii consistente con quello.
    T_T mi consigli una guida decente? sto passando da php vecchio stampo a questo nuovo 7, sto impazzendo.

  4. #4
    mzanella non è connesso AlterGuru
    Data registrazione
    29-12-2015
    Messaggi
    1,954

    Predefinito

    Ha fatto quest'effetto a molti

    Per la "versione" ad oggetti c'è questa: 'MySQLi' for Beginners. Altrimenti c'è php mysqli tutorial for beginners che copre sia quella procedurale che ad oggetti.

    I suggerimenti che do più spesso:


Regole di scrittura

  • Non puoi creare nuove discussioni
  • Non puoi rispondere ai messaggi
  • Non puoi inserire allegati.
  • Non puoi modificare i tuoi messaggi
  •