Escape single quote character for use in an SQLite query
database, escaping, single-quotes, sql, sqlite
Solution
Try doubling up the single quotes (many databases expect it that way), so it would be :
INSERT INTO table_name (field1, field2) VALUES (123, 'Hello there''s');
Relevant quote from the documentation:
A string constant is formed by enclosing the string in single quotes ('). A single quote within the string can be encoded by putting two single quotes in a row - as in Pascal. C-style escapes using the backslash character are not supported because they are not standard SQL. BLOB literals are string literals containing hexadecimal data and preceded by a single "x" or "X" character. ... A literal value can also be the token "NULL".
Problem
I wrote the database schema (only one table so far), and the INSERT statements for that table in one file. Then I created the database as follows: ``` $ sqlite3 newdatabase.db SQLite version 3.4.0 Enter ".help" for instructions sqlite> .read ./schema.sql SQL error near line 16: near "s": syntax error ``` Line 16 of my file looks something like this: ``` INSERT INTO table_name (field1, field2) VALUES (123, 'Hello there\'s'); ``` The problem is the escape character for a single quote. I also tried double escaping the single quote (using `\\\'` instead of `\'`), but that didn't work either. What am I doing wrong?