Visualizzazione risultati 1 fino 5 di 5

Discussione: Errore query PHP

  1. #1
    tryhere non è connesso AlterVistiano
    Data registrazione
    19-09-2007
    Messaggi
    757

    Predefinito Errore query PHP

    Codice:
    Codice PHP:
    $DBHOST = 'localhost';
    $DBUSER = 'tryhere';
    $DBPW = '*';
    $DBNAME = 'test';
    $connection = mysql_pconnect("$DBHOST","$DBUSER","$DBPW")
    or die (
    "Couldn't connect to server.");
    $db = mysql_select_db("$DBNAME", $connection)
    or die(
    "Couldn't select database.");
    $query = mysql_query('show tables from nome_database');
    while (
    $row=[B]mysql_fetch_row($query)[/B]) {
    echo
    $row[0];
    }
    Errori:
    Warning: mysql_fetch_row() expects parameter 1 to be resource, boolean given
    Ultima modifica di dreadnaut : 19-08-2009 alle ore 14.17.19

  2. #2
    L'avatar di dreadnaut
    dreadnaut non è connesso Super Moderatore
    Data registrazione
    22-02-2004
    Messaggi
    6,306

    Predefinito

    La funzione mysql_query() restituisce false in caso di errore, e tu non fai alcun controllo, ma passi direttamente il risultato a mysql_fetch_row(), che se ne lamenta.

    Controlla prima, e stampa mysql_error().

  3. #3
    tryhere non è connesso AlterVistiano
    Data registrazione
    19-09-2007
    Messaggi
    757

    Predefinito

    Codice:
    if ($query==false)
        echo mysql_error();
    Intendi così?

  4. #4
    Guest

    Predefinito

    Codice PHP:
    $query = mysql_query('show tables from nome_database') or die (mysql_error());

  5. #5
    L'avatar di dreadnaut
    dreadnaut non è connesso Super Moderatore
    Data registrazione
    22-02-2004
    Messaggi
    6,306

    Predefinito

    (disclaimer: usare or die(); per gestire gli errori è una pratica un po' barbara, che sarebbe meglio non consigliare )

    Se qualcosa non funziona, non è bello presentare all'utente una pagina troncata con un messaggio di errore. Gli errori andrebbero gestiti:

    Codice PHP:
    if ( $query = mysql_query('show tables from nome_database') ) {
    while (
    $row = mysql_fetch_row($query) ) {
    echo
    $row[0];
    }
    } else {
    echo
    "Errore nell'elencare le tabelle di nome_database!";
    // echo "Debug: " . mysql_error(); // commentata una volta che il sito è completo
    }
    Ultima modifica di dreadnaut : 19-08-2009 alle ore 16.35.41

Regole di scrittura

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