2010-09-07 66 views
-1

我有一个数据库,我最近从MySQL转换为SQLite。我有一个PHP脚本,它从POST或GET请求中获取一个字符串,并查找该字符串并在该行中返回一个值。如何从iPhone上的SQLite数据库访问某些内容?

<?php 
require_once('../config.php'); 

$newNumber = $_REQUEST['new'] ; 

$tbl_name = 'roomNumbers'; 

$sql="SELECT * FROM $tbl_name WHERE new='$newNumber'"; 

$result=mysql_query($sql) or die ('Error, cannot execute query'); 

    $data = mysql_query($sql); 
    $info = mysql_fetch_array($data); 
    $oldNumber = $info['old']; 

if($oldNumber == null) {$oldNumber = "Room Not Found";} 
    echo $oldNumber; 

?> 

这就是我现在使用的。有人可以帮我把它转换成iPhone上的SQLite。

此代码不起作用。

if(sqlite3_open([databasePath UTF8String], &database) == SQLITE_OK) { 
     NSLog(@"entered readRoomsFromDatabase if 1"); 
     // Setup the SQL Statement and compile it for faster access 
     const char *sqlStatement = "SELECT * FROM 'roomNumbers' WHERE new='h13'"; 


     sqlite3_stmt *compiledStatement; 

     if(sqlite3_prepare_v2(database, sqlStatement, -1, &compiledStatement, NULL) == SQLITE_OK) { 
        NSLog(@"entered readRoomsFromDatabase if 2"); 
      if(sqlite3_step(compiledStatement) == SQLITE_ROW) { 
         NSLog(@"entered readRoomsFromDatabase if 3"); 

       NSString *aName =[NSString stringWithUTF8String:(char *)sqlite3_column_text(compiledStatement, 0)]; 

       NSLog(aName); 

      } 
     } 
     // Release the compiled statement from memory 
     sqlite3_finalize(compiledStatement); 

    } 

它不会通过if(sqlite3_prepare_v2(database, sqlStatement, -1, &compiledStatement, NULL) == SQLITE_OK) {

+1

不,这不是'请为我写代码'网站。你为什么不开始在Stack Overflow或Google上搜索,然后尝试一下,如果你的代码不工作,就再次发布。 – 2010-09-07 23:32:40

+0

我确实搜索过。我用不起作用的代码更新了帖子。 – 2010-09-08 00:29:52

+0

你能包括更多具体的错误吗?如在其中,当它失败时会发生什么?它是运行时/编译时错误吗?它是逻辑错误还是语法错误?等 – 2010-09-08 00:46:05

回答

0

尝试使用sqlite3_errmsg(sqlite3的*)来获取描述错误的英文文本。 我建议你使用FMDB(这是obitective-C封装的SQLite C API)。