2011-09-26 65 views
3

我使用反斜槓在下面的代碼中轉義兩個分號。我在SQLite數據庫Brower 2.0 for Mac中執行此代碼。它一直凍結。我猜這是因爲一些語法問題?如何在sqlite中轉義?

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"); 

回答

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的將讓您使用字符串的單引號或雙引號。

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)

+3

是的,但這顯然只是對古代SQL語句[韌性的行爲](http://sqlite.org/lang_keywords.html)。雙引號將用於標識符,以防與關鍵字衝突。 – RavuAlHemio

+0

我認爲這個答案對任何語言interpritor都更有用。謝謝。 – Vyacheslav