Sign Up

Sign Up to our social questions and Answers Engine to ask questions, answer people’s questions, and connect with other people.

Have an account? Sign In

Have an account? Sign In Now

Sign In

Login to our social questions & Answers Engine to ask questions answer people’s questions & connect with other people.

Sign Up Here

Forgot Password?

Don't have account, Sign Up Here

Forgot Password

Lost your password? Please enter your email address. You will receive a link and will create a new password via email.

Have an account? Sign In Now

You must login to ask a question.

Forgot Password?

Need An Account, Sign Up Here

Please briefly explain why you feel this question should be reported.

Please briefly explain why you feel this answer should be reported.

Please briefly explain why you feel this user should be reported.

Sign InSign Up

The Archive Base

The Archive Base Logo The Archive Base Logo

The Archive Base Navigation

  • SEARCH
  • Home
  • About Us
  • Blog
  • Contact Us
Search
Ask A Question

Mobile menu

Close
Ask a Question
  • Home
  • Add group
  • Groups page
  • Feed
  • User Profile
  • Communities
  • Questions
    • New Questions
    • Trending Questions
    • Must read Questions
    • Hot Questions
  • Polls
  • Tags
  • Badges
  • Buy Points
  • Users
  • Help
  • Buy Theme
  • SEARCH
Home/ Questions/Q 9046499
In Process

The Archive Base Latest Questions

Editorial Team
  • 0
Editorial Team
Asked: June 16, 20262026-06-16T11:40:20+00:00 2026-06-16T11:40:20+00:00

I am building an iOS app using SQLite and fmdb as wrapper. I am

  • 0

I am building an iOS app using SQLite and fmdb as wrapper.
I am trying to execute the following SQL statement:

SELECT * FROM TABLE WHERE FIELD LIKE '%text%'

with the text coming from a UISearchBar.

Up to now the only way I got it working was with the following code:

NSString *query = [NSString stringWithFormat:@"SELECT * FROM TABLE WHERE FIELD LIKE '%%%@%%'", text];
FMResultSet *results = [db executeQuery:query];

Please note I am posting only the query code. It works well.

What I want though, is to avoid SQL injection so I am trying something like:

NSString *query = @"SELECT * FROM TABLE WHERE FIELD LIKE %%?%%";
FMResultSet *results = [db executeQuery:query, text];

Or something like:

NSString *query = @"SELECT * FROM TABLE WHERE FIELD LIKE ?";
FMResultSet *results = [db executeQuery:query, [NSString stringWithFormat:@"%%%@%%", text]];

That do not work. The same happens with single quotes around the like clause (‘%?%’) Or single % instead of double.

Can you walk me through this issue?

  • 1 1 Answer
  • 0 Views
  • 0 Followers
  • 0
Share
  • Facebook
  • Report

Leave an answer
Cancel reply

You must login to add an answer.

Forgot Password?

Need An Account, Sign Up Here

1 Answer

  • Voted
  • Oldest
  • Recent
  • Random
  1. Editorial Team
    Editorial Team
    2026-06-16T11:40:21+00:00Added an answer on June 16, 2026 at 11:40 am

    You last attempt (without any quotes) is the correct syntax. Are you checking to see if results is non-nil? If nil, you should check for the error string. For example, this works:

    NSString *searchString = @"larry";
    NSString *likeParameter = [NSString stringWithFormat:@"%%%@%%", searchString];
    NSString *sql = @"SELECT text_column FROM test WHERE text_column LIKE ?";
    
    FMResultSet *results = [db executeQuery:sql, likeParameter];
    
    if (!results)
    {
        NSLog(@"error: %@", [db lastErrorMessage]);
        [db close];
        return;
    }
    
    while ([results next])
    {
        NSLog(@"%s: %@", __FUNCTION__, results[0]);
    }
    
    [results close];
    [db close];
    

    By the way, if you’re being particular and you don’t want the end user manipulating the parameters or getting unintuitive responses (and you don’t want the end user applying their own wildcard characters), you might want to escape occurrences of wildcard characters, such as % or _, using the ESCAPE SQL syntax. Thus, you might want to define a constant for an escape character:

    NSString * const kEscapeCharacter = @"\\";
    

    And then, build your SQL like:

    NSString *likeParameter = [NSString stringWithFormat:@"%%%@%%", [self escapedLikeParameter:searchString]];
    NSString *sql = [NSString stringWithFormat:@"SELECT text_column FROM test WHERE text_column LIKE ? ESCAPE '%@'", kEscapeCharacter];
    

    Where escapedLikeParameter escapes %, _, and the wildcard character itself. Thus:

    - (NSString *)escapedLikeParameter:(NSString *)string
    {
        NSString *escapedString;
        escapedString = [string stringByReplacingOccurrencesOfString:kEscapeCharacter
                                                                    withString:[NSString stringWithFormat:@"%@%@", kEscapeCharacter, kEscapeCharacter]];
        escapedString = [escapedString stringByReplacingOccurrencesOfString:@"_"
                                                                 withString:[NSString stringWithFormat:@"%@_", kEscapeCharacter]];
        return [escapedString stringByReplacingOccurrencesOfString:@"%"
                                                        withString:[NSString stringWithFormat:@"%@%%", kEscapeCharacter]];
    }
    

    That way, you can search for any string, including those with the multi-character wildcard character, /, or the single character wildcard character, _.

    • 0
    • Reply
    • Share
      Share
      • Share on Facebook
      • Share on Twitter
      • Share on LinkedIn
      • Share on WhatsApp
      • Report

Sidebar

Related Questions

I'm having problems building an iOS app from the terminal. I'm following the xcodebuild
I'm using the following code within XCode, building for iOS with ARC enabled. Why
I am building an app which uses cocos2D. I developed my app using iOS
I'm building an app using Phonegap and I'm using Urban Airship for iOS and
I am building an iOS app using Rubymotion and when I run the project
I am building an iOS app using Rubymotion. I need to cache remote images
I am building an iOS app using Rubymotion. To be able to reuse code
I'm building an iOS app with PhoneGap. I'm using translate3d CSS animations to create
I am trying to to complete the 'Your Second iOS App' tutorial from the
Hi I am building a iOS app using Appcelerator, I have a file app.js

Explore

  • Home
  • Add group
  • Groups page
  • Communities
  • Questions
    • New Questions
    • Trending Questions
    • Must read Questions
    • Hot Questions
  • Polls
  • Tags
  • Badges
  • Users
  • Help
  • SEARCH

Footer

© 2021 The Archive Base. All Rights Reserved
With Love by The Archive Base

Insert/edit link

Enter the destination URL

Or link to existing content

    No search term specified. Showing recent items. Search or use up and down arrow keys to select an item.