为什么sqlite3_bind_int不能在我的代码中工作?

问题描述:

您好我是新来iphone,我试图从数据库中选择的值我通过sqlite3_bind_int()给出条件的所有工作原理(即数据库打开),但是当我编译行sqlite3_step(语句)它不会获取值但根据我的查询它应该获取值。我不知道天气的价值是绑定的。为什么sqlite3_bind_int不能在我的代码中工作?

将值绑定到sqlite3_bind_int()后,如何通过NSLog()检查完整查询。

下面是我所使用的代码,plz帮助我

- (void) getDataToDisplay:(NSString *)dbPath 
{ 

    if (sqlite3_open([dbPath UTF8String], &MYDB) == SQLITE_OK) 
    { 
     const char *sql; 

      sql="select name,address,phonenumber from doctorlist where sno between %d and %d"; 

      if(sqlite3_prepare_v2(MYDB, sql, -1, &mystmt, NULL) != SQLITE_OK) 
      { 
       NSLOG(@"Insert Values"); 
      } 

       sqlite3_bind_int(mystmt,1,10); 

       sqlite3_bind_int(mystmt, 2,15); 

       while(sqlite3_step(mystmt) == SQLITE_ROW) 
       { 
        [DoctorName addObject:[NSString stringWithString:[NSString stringWithUTF8String:(char *)sqlite3_column_text(mystmt, 0)]]]; 
        [DoctorAddress addObject:[NSString stringWithString:[NSString stringWithUTF8String:(char *)sqlite3_column_text(mystmt, 1)]]]; 
        [PhoneNumber addObject:[NSString stringWithString:[NSString stringWithUTF8String:(char *)sqlite3_column_text(mystmt, 2)]]]; 
       }  
    } 
    sqlite3_reset(mystmt); 
    if(MYDB)sqlite3_close(MYDB); 

} 

在此先感谢

+2

你为什么不使用CoreData?非常容易,代码脆弱得多,而且非常可能显着更快。 – bbum 2010-06-18 15:54:34

+0

+1对于coredata,但如果您必须使用sqlite,为什么不使用包装? – 2010-06-18 17:40:13

你的SQL将会阅读:

sql="select name,address,phonenumber from doctorlist where sno between ?1 and ?2"; 
+0

谢谢你,伙计。 – 2010-06-21 07:24:58