Я следил за учебником, чтобы подключиться к базе данных MySQL через PHP Script из приложения для Android. Моя проблема заключается в (из LogCat): «Uncaught TypeError: Невозможно вызвать метод« select »undefined at null: 1». Некоторое время назад я имел успех, поэтому, возможно, я случайно изменил что-то, что вызвало это? В моей базе данных есть 4 столбца, и с этой стороны все в порядке. Вот мой PHP код:Подключиться к базе данных MySQL с Android
<?php
$host="xxxxx"; // Host name
$username="xxxxx"; // Mysql username
$password="xxxxx"; // Mysql password
$db_name="xxxxx"; // Database name
$tbl_name="xxxxx"; // Table name
// Connect to server and select databse.
mysql_connect("$host", "$username", "$password")or die("cannot connect");
mysql_select_db("$db_name")or die("cannot select DB");
$q=mysql_query("SELECT * FROM $tbl_name WHERE pass>'".$_REQUEST['year']."'");
while($e=mysql_fetch_assoc($q))
$output[]=$e;
print(json_encode($output));
mysql_close();
?>
... и на Android:
String result = "";
//the year data to send
ArrayList<NameValuePair> nameValuePairs = new ArrayList<NameValuePair>();
nameValuePairs.add(new BasicNameValuePair("year","Pass1"));
//http post
try{
HttpClient httpclient = new DefaultHttpClient();
HttpPost httppost = new HttpPost("http://MyWebsite/queryfromandroid.php");
httppost.setEntity(new UrlEncodedFormEntity(nameValuePairs));
HttpResponse response = httpclient.execute(httppost);
HttpEntity entity = response.getEntity();
is = entity.getContent();
}catch(Exception e){
Log.e("log_tag", "Error in http connection "+e.toString());
}
//convert response to string
try{
BufferedReader reader = new BufferedReader(new InputStreamReader(is,"iso-8859-1"),8);
StringBuilder sb = new StringBuilder();
String line = null;
while ((line = reader.readLine()) != null) {
sb.append(line + "\n");
}
is.close();
result=sb.toString();
}catch(Exception e){
Log.e("log_tag", "Error converting result "+e.toString());
}
//parse json data
try{
JSONArray jArray = new JSONArray(result);
for(int i=0;i<jArray.length();i++){
JSONObject json_data = jArray.getJSONObject(i);
Log.i("log_tag","id: "+json_data.getString("password")
);
}
}
catch(JSONException e){
Log.e("log_tag", "Error parsing data "+e.toString());
}
Спасибо.
Попробуйте вызова вас r php script из браузера - это покажет вам какие-либо ошибки в скрипте. Сначала исправьте их, затем приступите к исправлению стороны Android. –
Теперь многие пользователи SO только что видели информацию о вашей базе данных, славный! Я бы рекомендовал изменить. –
Извините, но я не могу получить доступ к Журналу ошибок в моем бесплатном хостинговом плане и LogCat, есть только эта ошибка, ничего больше ... – Nikita