Возникли проблемы с привязкой данных с использованием% подстановочных знаков - PullRequest
0 голосов
/ 03 октября 2011

Используя sqlite и создавая запросы, все они работают нормально, пока я не попытаюсь связать определенные данные в запрос, такой как -

NSString *query = @"SELECT id, title FROM fields WHERE (staff LIKE '%?%');
sqlite3_prepare_v2(lessonPlansDatabase, [query UTF8String], -1, &stmt, nil);

NSString *theValue = @"Fred";
sqlite3_bind_text(stmt, 1, [theValue UTF8String], -1, NULL);

Проблема, по-видимому, связана с использованием «%». Я пытался поместить это в строку, которую я связываю, но это тоже не работает. Если я просто сделаю запрос полностью, как -

NSString *query = @"SELECT id, title FROM fields WHERE (staff LIKE '%Fred%');

и ничего не связывай, все отлично работает. Но я не хочу этого делать, если в строке есть символы, которые нарушают запрос, я бы предпочел, чтобы sqlite выполнял привязку. Привязка отлично работает, когда нет символов «%».

Любая помощь высоко ценится!

Ответы [ 2 ]

1 голос
/ 03 октября 2011

Вы хотите

NSString *query = @"SELECT id, title FROM fields WHERE (staff LIKE ?)";
sqlite3_prepare_v2(lessonPlansDatabase, [query UTF8String], -1, &stmt, nil);

NSString *theValue = @"%Fred%";
sqlite3_bind_text(stmt, 1, [theValue UTF8String], -1, NULL);
0 голосов
/ 03 октября 2011

Escape (%) s с (%) и попытайтесь связать текст.

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