2010-09-07 54 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)。