Inserire un varchar che contiene la virgoletta singola

di p0ll0_ il
6 risposte
Devo inserire il codice prodotto che è un varchar e per inserirlo faccio così:
INSERT INTO table_products (product_code, description)
VALUES ('CC'CC'DD', 'descrizione casuale') ;
E mi da errore presumo perché nel codice prodotto ci sono le virgolette singole. Come risolvere il problema? Grazie.

6 Risposte

  • Raddoppia gli apici interni
    
    INSERT INTO table_products (product_code, description)
    VALUES ( 'CC''CC''DD', 'descrizione casuale') ;
    
  • Ci sono degli altri caratteri, oltre all'apice singolo che potrebbero dare problemi? Se sì, quali e come risolvo la cosa? Grazie mille
  • Hai un problema specifico con qualche altro carattere?
  • Fondamentalmente queste query si fanno SOLO con i tool di accesso al DB.
    E risolvi le rogne dei caratteri di volta in volta cercando con Google.

    Se lo fai da codice, ci sono altri sistemi che si ""smazzano"" TUTTI i problemi di codifica dei caratteri

    Ci sono MOLTI caratteri che possono dare problemi. Devi leggerti la documentazione!
  • Dove trovo questa documentazione?
    No, non ho problemi specifici con qualche altro carattere, ma siccomemysql lo sto usando con Java, l'utente chissà che carattere potrebbe inserire...
  • E allora usa le PreparedStatements. Sono state inventate proprio per questo.
    
    String valorePrimoCampo = ...;   // l'utente scrive quello che vuole
    String valoreSecondoCampo = ...;   // l'utente scrive quello che vuole
    
    String sql = "INSERT INTO tabella VALUES(?,?);
    PreparedStatement pstmt = null;
    try {
        pstmt = con.prepareStatement( sql );
        pstmt.setString(1, valorePrimoCampo);
        pstmt.setString(2, valoreSecondoCampo);
        pstmt.executeUpdate();
    } catch (Exception e) {
        e.printStackTrace();
    } finally {
        if (pstmt != null) try { pstmt.close(); } catch (Exception e) { }
    }
    
Devi accedere o registrarti per scrivere nel forum
6 risposte