2016-09-19 74 views
0

我的PHP代碼的作品,它說結果是成功的,也在我的android,但它沒有做我的查詢來更新行,它只是說成功,但沒有更新。 我很確定CarStatusCar_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()); 
} 
?> 
+2

** 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

+2

'$ result> 0'在邏輯上是錯誤的。 'mysql_query'返回一個語句句柄,或者一個布爾值false。它永遠不會返回一個整數。它應該是'if($ result === false){echo'failed'; } else {echo'success'; }'。並且請注意,沒有更新任何行的更新不是失敗。它只是一個沒有改變任何東西的更新。您需要檢查affected_rows。 –

+0

爲什麼不是PHP腳本回顯的情況下isset()失敗? – greenapps

回答

0

post.put("txtCarNo",tvCarID.toString()); tvCarID需要.getText 這樣反而使其postData.put("txtCarNo",tvCarID.getText().toString());