+ Rispondi alla Discussione
Risultati da 1 a 6 di 6

Problema con apice "'" in query mysql php

Ultimo Messaggio di Lib3Ns il:
  1. #1
    User
    Data Registrazione
    Nov 2012
    Località
    Torino
    Messaggi
    17

    Problema con apice "'" in query mysql php

    Salve,

    Ho un problema con una query mysql, spiego :

    Da un form inserimento dati invio alla query, la query salva i dati correttamente nel db, il problema avviene quando un campo, ad esempio provincia è uguale a "l'aquila" essendo un apice la query mi da errore.....

    Ho inserito, prima della query la seguente stringa :

    $user_provincia = str_replace("'", "\'", $_POST['user_provincia']); ma continua a darmi errore :

    You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'AQUILA'


    Qualcuno può aiutarmi??? premetto che di php e mysql non sono molto scafato......

  2. #2
    User
    Data Registrazione
    Nov 2012
    Località
    Torino
    Messaggi
    17
    ops....

    inserisco anche il codice così si capisce meglio dove sbaglio


    <?php


    header('Content-type: text/html;charset=utf-8');

    $user_tipo= str_replace("'", "\'", $_POST['user_tipo']);
    $user_email= str_replace("'", "\'", $_POST['user_email']);
    $user_nicename = str_replace("'", "\'", $_POST['user_nicename']);
    $user_citta= str_replace("'", "\'", $_POST['user_citta']);
    $user_provincia = str_replace("'", "\'", $_POST['user_provincia']);
    $user_annuncio= str_replace("'", "\'", $_POST['user_annuncio']);



    // richiamo il file di configurazione
    require 'config.php';

    // richiamo lo script responsabile della connessione a MySQL
    require 'connect.php';

    // preparo la query
    $query = "INSERT INTO utenti (id, user_tipo, user_email, user_nicename, user_password, user_nominativo, user_citta, user_provincia, user_annuncio)

    VALUES ('','$_POST[user_tipo]','$_POST[user_email]','$_POST[user_nicename]','$_POST[user_password]','$_POST[user_nominativo]','$_POST[user_citta]','$_POST[user_provincia]','$_POST[user_annuncio]')";

    // lancio la query
    $result = mysql_query($query);

    // controllo l'esito
    if (!$result) {
    die("Errore nella query $query: " . mysql_error());
    }


    mysql_select_db($DB_name);
    $query_pippo = "select id from $tbl_name WHERE user_nicename='$user_nicename'";
    $pippo = mysql_query($query_pippo) or die(mysql_error());
    $row_pippo = mysql_fetch_assoc($pippo);
    $totalRows_pippo = mysql_num_rows($pippo);


    // Creao la cartella per l'upload immagini con il nome dell'ultimo id creato
    mkdir("../upload/server/php/files/".$row_pippo['id'], 0777);

    mysql_close();

    header('Location: ../upload/upload.php');
    exit;

    ?>

  3. #3
    User L'avatar di Francesco Di Caprio
    Data Registrazione
    Mar 2013
    Località
    Caserta
    Messaggi
    216
    Segui Francesco Di Caprio su Twitter Aggiungi Francesco Di Caprio su Google+ Aggiungi Francesco Di Caprio su Facebook Aggiungi Francesco Di Caprio su Linkedin
    Non utilizzare str_replace(), utilizza addslashes().
    Endelab - Web Development

  4. #4
    Utente Premium
    Data Registrazione
    Jun 2008
    Località
    Milano
    Messaggi
    80
    Il problema è che nella clausola values continui ad utilizzare attributi della variabile Post ma che non hanno subìto la sostituzione e quindi ti genera l'errore.
    Blog di Comunicazione... www.comunicareonline.it

  5. #5
    User
    Data Registrazione
    Nov 2012
    Località
    Torino
    Messaggi
    17
    Grazie mille!!!

    Due gg a sbattere la testa contro il muro!!! sono un pivello...

    ciao Iceman84, è vero, ero così concetranto sul fatto che non passasse il codice str_replace da non vedere che ripostavo il tutto sotto values!!! ( colpa di un semplice copia e incolla di una vecchia query per fare prima!! )
    cmq adesso tutto è ok.

    Grazie Francesco, utilizzerò addslashes() anzichè str_replace(), e per stampare la variabile in modo corretto utilizzerò stripslashes()


    Grazie mille... !!!

  6. #6
    User
    Data Registrazione
    Apr 2010
    Messaggi
    29
    Ma utilizzare anche se deprecato @mysql_escape_string() ???

+ Rispondi alla Discussione

^ Permessi di Scrittura

  • Tu non puoi inviare nuove discussioni
  • Tu non puoi inviare risposte
  • Tu non puoi inviare allegati
  • Tu non puoi modificare i tuoi messaggi
  •  
  • Il codice BB è Attivato
  • Le faccine sono Attivato
  • Il codice [IMG] è Attivato
  • Il codice [VIDEO] è Attivato
  • Il codice HTML è Disattivato
  • Trackbacks Attivato
  • Pingback Attivato
  • Refback Attivato

SEO by vBSEO 3.6.0 PL2 ©2011, Crawlability, Inc.