Не удается вставить BLOB-объект в базу данных SQLite - PullRequest
0 голосов
/ 15 августа 2011

У меня проблема с типом данных blob sql, проблема в том, что я не могу вставить NSData в базу данных, компилятор не показывает ошибок, но размер файла базы данных не изменился после вставки данных, я пробовал все видыВ общем, это моя последняя функция, которую я написал, но, похоже, она работает, пожалуйста, помогите, заранее спасибо!

sqlite3 *database;
        if (sqlite3_open([databasePath UTF8String], &database)== SQLITE_OK)
        {
            NSString *statement = [[NSString alloc]initWithFormat:@"insert into %@(date,name,type,urlpath) values('%@','%@','0','%@')",mainPath,
                                   currentTime,
                                   (*incomingObject).fileName, 
                                   filterURL];
            NSLog(@"\n--==%@ %@==--",(*incomingObject).fileName,(*incomingObject).urlAdress);
            const char *sqlStatement = [statement UTF8String];
            [statement release];
            sqlite3_stmt *compiledStatement;
            sqlite3_prepare_v2(database, sqlStatement, -1, &compiledStatement, NULL);
            sqlite3_step(compiledStatement);
            sqlite3_reset(compiledStatement);
            sqlite3_finalize(compiledStatement);
        }
        sqlite3_close(database);
        break;

1 Ответ

3 голосов
/ 15 августа 2011

Не очень хорошая идея передавать значения параметров в инструкции SQL. Таким образом, вы не защищены от SQL-инъекций.

Я предлагаю вам использовать функции SQLite C-API, такие как: sqlite3_bind _ *. Вы найдете sqlite3_bind_blob метод, который позволит вам вставить BLOB-объект в таблицу

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