Как убежать в sqlite? - PullRequest
       1

Как убежать в sqlite?

3 голосов
/ 26 сентября 2011

В коде ниже я экранирую две точки с запятой, используя обратную косую черту.Я выполняю этот код в SQLite Database Brower 2.0 для Mac.Это продолжает замерзать.Я предполагаю, что это из-за какой-то синтаксической проблемы?

INSERT INTO question (QuestionId, QuestionText, AreaId, AnswerText)
VALUES(6019, 'Math Functions', 6, "
Added: 9/1/2011

The following is a listing of math functions available:

Power of:
double pow ( double, double )
Example:
double myvar = pow(2,4)\;
NSLog(@"%.f", myvar)\; //value is 16");

Ответы [ 2 ]

8 голосов
/ 26 сентября 2011

Точки с запятой - не ваша проблема, двойные кавычки в вызове NSLog:

NSLog(@"%.f", myvar)\; //value is 16"
       ^---^

Удвойте их, и SQLite будет счастлив:

NSLog(@""%.f"", myvar)\; //value is 16"

Или вы можете использовать одинарные кавычки вокруг всего этого:

INSERT INTO question (QuestionId, QuestionText, AreaId, AnswerText)
VALUES(6019, 'Math Functions', 6, '
Added: 9/1/2011

The following is a listing of math functions available:

Power of:
double pow ( double, double )
Example:
double myvar = pow(2,4)\;
NSLog(@"%.f", myvar)\; //value is 16');

Одинарные кавычки являются стандартными для строк SQL, но SQLite позволит вам использовать одинарные или двойные кавычки для строк.

8 голосов
/ 26 сентября 2011

В SQL строки всегда разделяются одинарными кавычками, а не двойными.

'Added: 9/1/2011

The following is a listing of math functions available:
[...]'

Никакие символы не экранируются, кроме этих одинарных кавычек (даже точек с запятой), и это происходит путем удвоения:

SELECT 'That''s not exactly what I''m looking for...';

(Это означает, что строка с одной кавычкой закодирована как '''' в SQL.)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...