2013-08-17 48 views
0

我有一個ios應用程序,我正在從我的在線服務器調用腳本,以便將值插入到表中。INSERT INTO從一個php腳本調用失敗

在此代碼:

//try to register the user 
$result = query("INSERT INTO login(username, pass) VALUES('%s','%s')", $user, $pass); 
if (!$result['error']) { 
    //success 
    login($user, $pass); 
} else { 
    //error 
    errorJson($result['error']); 
} 

我總是進入else子句和它印Database error

注意:errorJson是一個函數,它使字符串的json輸出發送回iphone應用程序。

從正常播放的地方正常選擇,所以我沒有機會連接到數據庫。

整個代碼是在這裏:

function register($user, $pass) { 
    //check if username exists 
    $login = query("SELECT username FROM login WHERE username='%s' limit 1", $user); 
    if (count($login['result'])>0) { 
     errorJson('Username already exists'); 
    } 
     //try to register the user 
     $result = query("INSERT INTO login(username, pass) VALUES('%s','%s')", $user, $pass); 
     if (! $result['error']) { 
     //success 
     login($user, $pass); 
     } else { 
    //error 
       errorJson($result['error']); 
     } 
} 

如果用戶名存在的NSLog上述正常打印,所以我想我可以連接到DB。

,這是我的查詢功能:

//executes a given sql query with the params and returns an array as result 
function query() { 
    global $link; 
    $debug = false; 

    //get the sql query 
    $args = func_get_args(); 
    $sql = array_shift($args); 

    //secure the input 
    for ($i=0;$i<count($args);$i++) { 
     $args[$i] = urldecode($args[$i]); 
     $args[$i] = mysql_real_escape_string($link, $args[$i]); 
    } 

    //build the final query 
    $sql = vsprintf($sql, $args); 

    if ($debug) print $sql; 

    //execute and fetch the results 
    $result = mysql_query($link, $sql); 
    if (mysql_errno($link)==0 && $result) { 

     $rows = array(); 

     if ($result!==true) 
     while ($d = mysql_fetch_assoc($result)) { 
      array_push($rows,$d); 
     } 

     //return json 
     return array('result'=>$rows); 

    } else { 

     //error 
     return array('error'=>'Database error'); 
    } 
} 
+0

如何改變錯誤的情況下返回'$ debug? mysql_error($ link):'數據庫錯誤' – Adder

回答

4

你的語法錯誤,應該是:

mysql_query($sql, $link): 

正確的語法:mysql_query (string $query [, resource $link_identifier = NULL ])

+0

謝謝!你救了我這麼多小時!我從教程中獲取了這些代碼,從未注意到這一點。愉快的 – ghostrider

+0

.. – Bora