Visualizzazione risultati 1 fino 5 di 5

Discussione: [php] Errore nella query

  1. #1
    Guest

    Predefinito [php] Errore nella query

    Premetto che sto programmando ancora in locale, quindi non posso darvi un link.

    Questo è l'errore che mi viene segnalato:
    Errore nella queryYou have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'mod,admin) VALUES ('Giovanni','Pili','sytry82','sytry82@gmail.com',' 123456'' at line 1
    Proprio non capisco dove sia l'errore visto che mi sto basando su listati che avevo usato per un altro blog, senza problemi.

    Codice PHP:
    <?php
    if(!isset($_POST['submit'])){
    echo(
    '
    <form method="post" action="#">
    <table width="600px;">
    <tr>
    <td>Nome</td>
    <td>Cognome</td>
    <td>Nikname</td>
    <td>eMail</td>
    <td>Password</td>
    </tr>
    <tr>
    <td><input type="text" name="nome"/></td>
    <td><input type="text" name="cognome"/></td>
    <td><input type="text" name="nikname"/></td>
    <td><input type="text" name="email"/></td>
    <td><input type="password" name="password"/></td>
    </tr>
    <tr>
    <td colspan="5"><input type="submit" name="submit"/></td>
    </tr>
    </table>
    </form>
    '
    );
    }else{
    include(
    'blog/config.php');

    $nome=mysql_real_escape_string($_POST['nome']);
    $cognome=mysql_real_escape_string($_POST['cognome']);
    $nikname=mysql_real_escape_string($_POST['nikname']);
    $email=mysql_real_escape_string($_POST['email']);
    $password=mysql_real_escape_string($_POST['password']);

    $query="INSERT INTO utenti (nome,cognome,nikname,email,password,mod,admin) VALUES ('{$nome}','{$cognome}','{$nikname}','{$email}','{$password}',0,0)";
    $result=@mysql_query($query, $conn->conn);

    if(!
    $result)
    {
    die (
    "Errore nella query".mysql_error());
    }else
    {
    header("Location:login_utente.php");
    }
    }
    ?>
    Così, su due piedi, sospetto che il problema sia nel modo in cui ho realizzato la tabella; vi inserisco direttamente uno screenshot di phpmyadmin, relativo alla tabella "utenti":



    Le colonne mod e admin le popolo con valore "0" in modo da poter fare una moderazione degli utenti che commentano e concedere l'accesso all'editor solo a certi utenti.

    Cosa sto sbagliando?

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

    Predefinito

    Prova a spostare la colonna data in fondo alla tabella, dopo mod e admin. E magari rinomina nikname in nickname, non sia mai che mysql sia schizzinoso.

  3. #3
    Guest

    Predefinito

    Citazione Originalmente inviato da dreadnaut Visualizza messaggio
    Prova a spostare la colonna data in fondo alla tabella, dopo mod e admin. E magari rinomina nikname in nickname, non sia mai che mysql sia schizzinoso.

    Ho corretto come mi hai suggerito ed ho fatto ulteriori modifiche:

    Codice PHP:
    include('blog/config.php');

    $nome=mysql_real_escape_string($_POST['nome']);
    $cognome=mysql_real_escape_string($_POST['cognome']);
    $nickname=mysql_real_escape_string($_POST['nickname']);
    $email=mysql_real_escape_string($_POST['email']);
    $password=mysql_real_escape_string($_POST['password']);
    $mod=mysql_real_escape_string('no');
    $admin=mysql_real_escape_string('ok');

    $query="INSERT INTO utenti (nome,cognome,nikname,email,password,mod,admin) VALUES ('{$nome}','{$cognome}','{$nickname}','{$email}','{$password}','{$mod}','{$admin}')";
    $result=@mysql_query($query, $conn->conn);
    Nella tabella ho spostato la colonna data alla fine.
    Indovina un po'.... l'errore persiste.

  4. #4
    Guest

    Predefinito

    PROBLEMA RISOLTO

    Scusate se "uppo".
    Allora, pare che "mod" sia una parola riservata e non la si può usare; infatti mi è bastato modificare il nome della colonna per non riscontrare più problemi. Grazie comunque per l'interessamento.

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

    Predefinito

    Se vuoi continuare ad usare mod come nome della colonna, puoi sempre racchiuderlo fra apici inversi, così: `mod`.

Regole di scrittura

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