fuga l'apostrofo (cioè double-up il carattere apice singolo) in SQL:
INSERT INTO Person
(First, Last)
VALUES
('Joe', 'O''Brien')
/\
right here
Lo stesso vale per le query di selezione:
SELECT First, Last FROM Person WHERE Last = 'O''Brien'
L'apostrofo o virgoletta singola, è un carattere speciale in SQL che specifica l'inizio e la fine dei dati di stringa. Ciò significa che per utilizzarlo come parte dei dati stringa letterali è necessario il escape
il carattere speciale. Con una sola citazione questo viene in genere ottenuto raddoppiando la tua quotazione. (Due singoli caratteri di citazione, non virgolette doppie invece di una sola offerta.)
Nota: Si dovrebbe sempre e solo preoccuparsi di questo problema quando si modifica manualmente i dati tramite un'interfaccia SQL prime in quanto la scrittura di query al di fuori di sviluppo e il test dovrebbe essere un evento raro. Nel codice ci sono tecniche e quadri (a seconda del tuo stack) che si occupano di caratteri speciali in fuga, SQL injection, ecc
fonte
2009-12-16 03:35:58
Conferma che non ti stai aprendo agli attacchi di SQL injection. Utilizzare i parametri dove possibile. – Andrew
Quale linguaggio di scripting stai usando? Ci sono funzioni in PHP, per esempio, per farlo correttamente per te. – philfreo
Accetto con Andrew qui: spero che questa domanda riguardi solo l'esecuzione di SQL tramite un client SQL o "browser di query" o simili e non in qualche punto nel codice di produzione. Non usare le dichiarazioni parametriche è follia. – charstar