我使用反斜杠在下面的代码中转义了两个半冒号。我正在SQLite Database Brower 2.0 for 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");
答案 0 :(得分:8)
在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中被编码为''''
。)
答案 1 :(得分:8)
分号不是你的问题,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允许您对字符串使用单引号或双引号。