我正在尝试将 user_details 从 mysql 获取到我的 android 应用程序。为此,我从 android 发布数据并在我的 php 页面中通过$_POST['mobile']
and 方法获取值。$_POST['usertype']
要检查数据是否正在发布,我首先尝试了下面的插入语句
//this works
$mobile = $_POST['mobile'];
$usertype = $_POST['usertype'];
sql = "INSERT INTO etc(id, etc) VALUES('$mobile', '$usertype')"
它工作正常,这意味着我的 post 方法正在发送数据。但是,当我尝试使用下面 where 语句中的发布值来读取数据时,它不会将任何数据返回到我的应用程序
// this doesn't work
$mobile = $_POST['mobile'];
$usertype = $_POST['usertype'];
$sql = "SELECT * FROM users where mobile_number='$mobile' and user_type='$usertype'";
同样,如果我像下面这样对两个变量进行硬编码并使用相同的变量,它会将数据返回到我的应用程序
//this returning data to my application
$mobile = 1812043433;
$usertype = Driver;
$sql = "SELECT * FROM users where mobile_number='$mobile' and user_type='$usertype'";
我在这里做错了什么
这是我的 php 页面
$mobile = $_POST['mobile'];
$usertype = $_POST['usertype'];
// Create connection
$con=mysqli_connect("**","***","**","**");
// Check connection
if (mysqli_connect_errno())
{
echo "Failed to connect to MySQL: " . mysqli_connect_error();
}
$sql = "SELECT * FROM users where mobile_number='$mobile' and user_type='$usertype'";
if ($result = mysqli_query($con, $sql))
{
$resultArray = array();
$tempArray = array();
while($row = $result->fetch_object())
{
// Add each result into the results array
$tempArray = $row;
array_push($resultArray, $tempArray);
}
echo json_encode($resultArray);
}
// Close connections
mysqli_close($con);
这是我正在解析的android
private void downloadJSON(final String urlWebService) {
class DownloadJSON extends AsyncTask<Void, Void, String> {
@Override
protected void onPreExecute() {
super.onPreExecute();
}
@Override
protected void onPostExecute(String s) {
super.onPostExecute(s);
// Toast.makeText(getApplicationContext(), s, Toast.LENGTH_SHORT).show();
// Toast.makeText(getApplicationContext(), s, Toast.LENGTH_SHORT).setText("Posting Bid");
try {
loadIntoListView(s);
} catch (JSONException e) {
e.printStackTrace();
}
}
@Override
protected String doInBackground(Void... voids) {
try {
URL url = new URL(urlWebService);
HttpURLConnection con = (HttpURLConnection) url.openConnection();
StringBuilder sb = new StringBuilder();
BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(con.getInputStream()));
String json;
while ((json = bufferedReader.readLine()) != null) {
sb.append(json + "\n");
}
return sb.toString().trim();
} catch (Exception e) {
return null;
}
}
}
DownloadJSON getJSON = new DownloadJSON();
getJSON.execute();
}
private void loadIntoListView(String json) throws JSONException {
JSONArray jsonArray = new JSONArray(json);
String[] stocks = new String[jsonArray.length()];
for (int i = 0; i < jsonArray.length(); i++) {
JSONObject obj = jsonArray.getJSONObject(i);
//stocks[i] = obj.getString("name") + " " + obj.getString("price");
String driverid=stocks[i] = obj.getString("id");
String driverfname=stocks[i] = obj.getString("first_name");
String driverlname=stocks[i] = obj.getString("last_name");
String driveravator="url";
String driverratings="3.8";
/*
tvhiddendriverId.setText(driverid);
tvhiddendriverfName.setText(driverfname);
tvhiddendriverlName.setText(driverlname);
tvhiddendriverAvator.setText(driveravator);
tvhiddendriverRatings.setText(driverratings);*/
/*Inserting to SQLITE directly from here
this.deleteDatabase("ContactsDB");
ContactsDB db=new ContactsDB(this);
db.open();
db.createEntry(driverid,driverfname,driverlname,driveravator,driverratings);
db.close();
Toast.makeText(this, "saved to db", Toast.LENGTH_SHORT).show();
}
}