SQLite 테이블에 삽입해야하는 아포스트로피가있는 문자열을 생각해보십시오.아포스트로피가있는 문자열 값 삽입
INSERT INTO myTable (table_Title TEXT) VALUES ('world's')
어떻게 마크 업 또는 INSERT
문에서 값에 아포스트로피를 탈출 할 수 있습니까?
SQLite 테이블에 삽입해야하는 아포스트로피가있는 문자열을 생각해보십시오.아포스트로피가있는 문자열 값 삽입
INSERT INTO myTable (table_Title TEXT) VALUES ('world's')
어떻게 마크 업 또는 INSERT
문에서 값에 아포스트로피를 탈출 할 수 있습니까?
http://www.sqlite.org/c3ref/bind_blob.html
이 같은 문자열로 쿼리에 직접 입력을 통과 할 수 없습니다. SQL 인젝션 공격에 취약 할뿐만 아니라 Mac app에서는 큰 문제는 아니지만, Prepared Statements를 처분 할 때 여전히 나쁜 생각입니다. Prepared Statements는 기본 데이터베이스가 실제의 수정되지 않은 입력 값을 안전하게 읽도록 보장합니다.
특정 예를 들어(오류가 간결/명확성을 위해 제거 확인) :
sqlite3 *db;
sqlite3_open("test.db", &db);
// Create a prepared statement
sqlite3_stmt *stmt;
const char *sql = "INSERT INTO myTable (table_Title TEXT) VALUES (?)";
sqlite3_prepare_v2(db, sql, -1, &stmt, NULL);
// Bind the parameter (safely)
sqlite3_bind_text(stmt, 1, "world's", -1, NULL);
// Execute the prepared statement
sqlite3_step(stmt);
(테스트되지 않은,하지만 당신은 아이디어를 얻을).
단일 어포 스트로피 대신 ''을 사용할 수 있습니다. https://www.sqlite.org/faq.html#q14
: 삽입 할Insert into table_name values('haven''t');
참조가