私はMySQLデータベースを使用するアプリケーションを構築しています。私はgps座標と文字列と整数も送信しようとしています..座標送信が正常に動作しています..問題は文字列と整数データベーステーブルの更新に関する問題
これは私のPHPスクリプトです:
<?php
$con = mysqli_connect("*****", "*****", "******", "*******");
$lat = $_POST["lat"];
$long = $_POST["long"];
$id= $_POST["id"];
$pickup= $_POST["pickup"];
$destination = $_POST["destination"];
$seats= $_POST["seats"];
$statement = mysqli_prepare($con,"Update user SET lat=$lat,long=$long , pickup=$pickup,destination=$destination,seats=$seats WHERE user_id=$id");
mysqli_stmt_execute($statement);
$response = array();
$response["success"] = true;
echo json_encode($response);?>
これは私のテーブル構造である:
と私は、問題は、複写(lat、long)と文字列(ピックアップ、宛先)を送信するために使用しているコードの間に違いがないためと考えていない..とにかくこれは私のアプリケーションコードの一部です:
public void send_gps(String pickup,String destination,int seats,int id, double lat,double long) {
// Response received from the server
Response.Listener<String> responseListener = new Response.Listener<String>() {
@Override
public void onResponse(String response) {
try {
JSONObject jsonResponse = new JSONObject(response);
boolean success = jsonResponse.getBoolean("success");
} catch (JSONException e) {
e.printStackTrace();
AlertDialog.Builder builder2 = new AlertDialog.Builder(MapsActivity.this);
builder2.setMessage("error")
.setNegativeButton("Retry", null)
.create()
.show();
}
}
};
gps_request request = new gps_request(pickup,destination,Integer.toString(seats),Integer.toString(id),Double.toString(lat),Double.toString(long), responseListener);
RequestQueue queue = Volley.newRequestQueue(this);
queue.add(request);
}
、これはこのような何かにあなたのクエリを変更してみてください、文字列要求に
public class gps_request extends StringRequest {
private static final String LOGIN_REQUEST_URL = "**********************";
private Map<String, String> params;
public gps_request(String pickup,String destination,String seats,String id,String lat, String long, Response.Listener<String> listener) {
super(Method.POST, LOGIN_REQUEST_URL, listener, null);
params = new HashMap<>();
params.put("lat", lat);
params.put("long", long);
params.put("id", id);
params.put("pickup", pickup);
params.put("destination", destination);
params.put("seats", seats);
}
@Override
public Map<String, String> getParams() {
return params;
}}
問題は、クエリで引用符を使用する方法がわからないことです。 –
準備文を使用しています。しかし、なぜあなたはそれをパラメータとして渡していますか?パラメータをバインドするには[mysqli_stmt_bind_param() '](http://php.net/manual/en/mysqli-stmt.bind-param.php)関数を使用してください。 –
2段目の '' SQLインジェクション ' – Drew