Visualizzazione dei risultati da 1 a 8 su 8
  1. #1

    Query MySQL - errore quando si invia stringhe con un apostrofo

    Ciao a tutti. Sto scrivendo un pagina che deve inviare a un database dei dati contenuti in un file di testo.
    Alcuni di questi dati sono stringhe e contengono un apostrofo (').

    Durante il ciclo che invia tutti i dati viene visualizzato un messaggio di errore proprio durante l'invio di queste stringhe. Come posso risolvere al problema?

    Specifico che non posso assolutamente modificare la stringa e sul db deve essere memorizzata così com'è!

    Ciao e grazie!

  2. #2
    Moderatore di Server Apache L'avatar di marketto
    Registrato dal
    Sep 2001
    Messaggi
    5,858
    think simple think ringo

  3. #3
    Non puoi usare addslashes ? (e poi quando prendi la stringa dal db usi stripslashes)

    Okay, come non detto, la soluzione di marketto è decisamente meglio

  4. #4
    ho risolto così:

    codice:
    $valori ['2'] = ereg_replace ("'", "\'", "$valori[2]");
    che ne dite?

  5. #5
    che:
    1° c'è una funzione apposita che corregge TUTTI i caratteri pericolosi e non semplicemente l'apostrofo
    2° in questo modo correggi solo un carattere
    3° stai usando le eregi che non solo sono tremendamente pesanti, ma anche inutili ... per queste cose (non considerando che c'è il comando apposito) si può benissimo usare l'str_replace
    The fastest Redis alternative ... cachegrand! https://github.com/danielealbano/cachegrand

  6. #6

    Stesso problema, ma con MySQL e ASP

    Salve a tutti!
    Io praticamente ho lo stesso problema che da il titolo a questo post, ma la differenza è che assieme a MySQL io uso ASP.

    In parole povere, uso il seguente html per inviare il testo contenuto in una textarea ad una pagina specifica:
    codice:
    <textarea rows="10" name="recensione" cols="45"><%=rs(5)%></textarea>
    Poi, in quest'ultima pagina, con asp faccio un request.form:
    codice:
    dim strRecensione
    strRecensione = request.form("recensione")
    E con la seguente query invio i dati al db per l'aggiornamento:
    codice:
    sql = "UPDATE archivio SET recensione='"&strRecensione&"' WHERE id_recensione="&intCodice
    Se però nella textarea inserisco ad es. il testo l'amico, mi viene restituito il seguente errore:

    # Error Type:
    Microsoft OLE DB Provider for ODBC Drivers (0x80040E14)
    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 'amico ' WHERE id_recensione=1237' at line 1
    /sito/paginaaggiornamento.asp, line 22

    Come posso fare? Esiste un modo per aggirare l'apostrofo contenuto nel testo?

    Grazie a tutti come sempre per l'aiuto.

  7. #7
    Ciao,
    è una risposta da forum ASP, ma in vbscript l'escape degli apici si fa aggiungendo un altro apice davanti a quello incriminato

    l'amico deve diventare l''amico, basta effettuare un replace
    per favore NIENTE PVT TECNICI da sconosciuti

  8. #8
    Ciao, grazie per la risposta.
    Così, ovvero come suggerisci tu, dovrei aver risolto il problema:
    codice:
    TestoOriginale = Request.Form("Testo")
    TestoDaCercare = Replace(TestoOriginale,"'","''")
    Non credo esistano strade alternative...

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.