• User

    [PHP] Errore nella query

    Qualcuno mi sa dire cosa cavolo sbaglio?

    Mi riporta il seguente errore:
    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','[email protected]','123456'' at line 1

    [PHP]
    <?php
    if(!isset($_POST['submit'])){
    echo('
    <form method="post" action="#">
    <table width="600px;">
    <tr>
    <td>Nome</td>
    <td>Cognome</td>
    <td>Nickname</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="nickname"/></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']);
    $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);
    
    if(!$result)
    {
    	die ("Errore nella query".mysql_error());
    }else
    {
    	header("Location:login_utente.php");
    }
    

    }
    ?>
    [/PHP]

    Vi linko direttamente lo screenshot della tabella "utente":
    hardwarepsiche.altervista.org/tabella2.png

    Proprio non mi capacito...


  • ModSenior

    Ciao Giovanni Pili,
    mod mi sembra sia una parola riservata, invece di mod metti mod e vedi se funziona.
    Attenzione al tipo di apice che è ` da non confondere con ' che è un'altra cosa.


  • User

    @Thedarkita said:

    Ciao Giovanni Pili,
    mod mi sembra sia una parola riservata, invece di mod metti mod e vedi se funziona.
    Attenzione al tipo di apice che è ` da non confondere con ' che è un'altra cosa.

    Provo e ti faccio sapere.

    Grazie! adesso è tutto a posto. 😄


  • User

    Thedarkita , sono un "apprendista " 😄
    , quindi perdona la mia domanda banale ... ma cosa intendi per "mod è una parola riservata , prova 'mod' ... 🙂


  • ModSenior

    Alcune parole che trovi qui sono parole riservate e sarebbe meglio evitare di utilizzarle come nome dei campi:
    http://dev.mysql.com/doc/refman/5.5/en/reserved-words.html

    Nel caso in cui si utilizzi una di essa usando quel tipo di apici MySQL capisce che ci stiamo riferendo ad un campo/tabella e non ad una funzione.


  • User Attivo

    Io uso sempre parole italiane così non corro il rischio di incappare in un termine riservato.