我有一個簡單的MySQL表在我的服務器上有4個字段。 pid
,aid
,uname
和active
。我通過我的Android應用程序將uname
變量發送到我的PHP代碼,並且我想將布爾active
列從1更改爲0,其中uname
字段等於我通過應用程序發送的值。這是我的代碼: 我從Android應用程序發送的值是收到這樣的index.php中並傳遞到其他功能DB_Functions.phpSQL更新方法返回JSONException
else if ($tag == 'notpart'){
$uname = $_POST['uname'];
$notpart = $db->notpart($uname);
if (!empty($notpart)) {
// stored successfully
$response["success"] = 1;
//$response["notpart"]["aid"] = $notpart["aid"];
$response["notpart"]["uname"] = $notpart["uname"];
echo json_encode($response);
}
else {
// failed to store
$response["error"] = 1;
//$response["error_msg"] = "JSON Error occured";
$response["error_msg"] = mysql_error();
echo json_encode($response);
}
}
在DB_Functions.php功能: 更新:已更改$uname
到'$uname'
。現在IllegalStringOffset警告走了,但JSONException存在
public function notpart($uname) {
$uuid = uniqid('', true);
echo $uname;
$result = mysql_query("UPDATE part SET active='0' WHERE uname = $uname");
// check for successful store
if ($result) {
//get event details
$pid = mysql_insert_id(); // last inserted id
$result = mysql_query("SELECT * FROM part WHERE pid = $pid");
//return event details
return mysql_fetch_array($result);
} else {
return mysql_error();
}
}
但我得到的非法串偏移警告,不進行任何更改到MySQL表進行。
這裏的logcat的:
05-20 21:57:26.958: E/JSON(17919): wwwww<br />n<b>Warning</b>: Illegal string offset 'uname' in <b>C:\xampp\htdocs\shareity\shareity\index.php</b> on line <b>445</b><br />n{"tag":"notpart","success":1,"error":0,"notpart":{"uname":"U"}}n
05-20 21:57:26.958: E/JSON Parser(17919): Error parsing data org.json.JSONException: Value wwwww<br of type java.lang.String cannot be converted to JSONObject
我試圖isset
和!empty
方法來嘗試發送過非法偏移誤差,但毫無效果。有人可以告訴我有什麼問題嗎?由於
該字段實際上是BOOLEAN。它會起作用嗎? –
布爾值使用TRUE或FALSE或1或0,如果你想使用數值但不是'0' – Grzegorz
好吧,我將字段類型更改爲INT。並使用0而不是'0'。現在,在使用''uname''而不是'$ uname'後,String偏移警告消失了,但是現在我得到一個JSON錯誤,提示uname的值(java.lang.String不能轉換爲JSONObject) –