0
我的PHP代碼的作品,它說結果是成功的,也在我的android,但它沒有做我的查詢來更新行,它只是說成功,但沒有更新。 我很確定CarStatus
和Car_No
在我的分貝。Android的PHP查詢不起作用
PHP QUERY
<?php
include_once("connection.php");
if(isset($_POST['txtCarNo']) && isset($_POST['txtCarStatus']))
{
$carNo = $_POST['txtCarNo'];
$carStatus = $_POST['txtCarStatus'];
$query = "UPDATE tbl_cars SET carStatus = '$carStatus' WHERE Car_No = '$carNo'";
$result = mysqli_query($conn,$query);
if($result > 0){
echo "success";
exit;
}else{
echo "failed";
exit;
}
}
?>
MOBILE
HashMap post = new HashMap();
post.put("txtCarNo",tvCarID.toString());
post.put("txtCarStatus","for approval");
PostResponseAsyncTask task1 = new PostResponseAsyncTask(DetailActivity.this, post, new AsyncResponse() {
@Override
public void processFinish(String s) {
if (s.contains("success")) {
Log.d(TAG, s);
Toast.makeText(DetailActivity.this, "Wait for owners approval", Toast.LENGTH_SHORT).show();
Intent in = new Intent(DetailActivity.this, RenterTabs.class);
startActivity(in);
finish();
} else {
Toast.makeText(getApplicationContext(), "Error", Toast.LENGTH_SHORT).show();
}
}
});
task1.execute("http://carkila.esy.es/carkila/rent2.php");
}
編輯
Connection.php
<?php
$servername = "***";
$username = "***";
$password = "***";
$dbname = "***";
$conn = mysqli_connect($servername, $username, $password, $dbname);
if (!$conn) {
die("Connection failed: " . mysqli_connect_error());
}
?>
** WARNING **:當使用'mysqli'你應該使用[參數化查詢(http://php.net/manual/en/mysqli .quickstart.prepared-statements.php)和['bind_param'](http://php.net/manual/en/mysqli-stmt.bind-param.php)將用戶數據添加到您的查詢中。 **不要**使用字符串插值或連接來完成此操作,因爲您創建了嚴重的[SQL注入漏洞](http://bobby-tables.com/)。 **絕不**將'$ _POST'或'$ _GET'數據直接放入查詢中,如果有人試圖利用您的錯誤,這會非常有害。 – tadman
'$ result> 0'在邏輯上是錯誤的。 'mysql_query'返回一個語句句柄,或者一個布爾值false。它永遠不會返回一個整數。它應該是'if($ result === false){echo'failed'; } else {echo'success'; }'。並且請注意,沒有更新任何行的更新不是失敗。它只是一個沒有改變任何東西的更新。您需要檢查affected_rows。 –
爲什麼不是PHP腳本回顯的情況下isset()失敗? – greenapps