我有一個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');
}
}
如何改變錯誤的情況下返回'$ debug? mysql_error($ link):'數據庫錯誤' – Adder