Php 无法使用MySQL数据库并从中检索数据
我试图根据用户提供的一些特定参数从数据库中检索学校列表。我有很多代码,但我找不到我的错误,需要一些帮助。我花了6个多小时研究并试图解决这个问题。我似乎无法修复它。我将感谢任何帮助 这是一个连接到MySQL数据库的android应用程序 以下是单击按钮时启动搜索的代码:Php 无法使用MySQL数据库并从中检索数据,php,android,mysql,database,json,Php,Android,Mysql,Database,Json,我试图根据用户提供的一些特定参数从数据库中检索学校列表。我有很多代码,但我找不到我的错误,需要一些帮助。我花了6个多小时研究并试图解决这个问题。我似乎无法修复它。我将感谢任何帮助 这是一个连接到MySQL数据库的android应用程序 以下是单击按钮时启动搜索的代码: btnGetSchool.setOnClickListener(new View.OnClickListener() { @Override public void onClick
btnGetSchool.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
String city = inputCity.getText().toString();
String school = inputSchoolName.getText().toString();
String state = chooseState.getSelectedItem().toString();
UserFunctions userFunction = new UserFunctions();
JSONObject json = userFunction.getSchool(school, state, city);
try {
schoolText.setText(json.getString(""));
} catch (JSONException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
});
以下是我的UserFunctions.java代码:
public JSONObject getSchool(String school, String state, String city) {
List<NameValuePair> params = new ArrayList<NameValuePair>();
params.add(new BasicNameValuePair("school", school));
params.add(new BasicNameValuePair("state", state));
params.add(new BasicNameValuePair("city", city));
JSONObject json = jsonParser.getJSONFromUrl(getSchoolURL, params);
return json;
}
总结一下,我将添加我的错误:
02-01 23:32:03.260: E/AndroidRuntime(12803): FATAL EXCEPTION: main
02-01 23:32:03.260: E/AndroidRuntime(12803): java.lang.NullPointerException
02-01 23:32:03.260: E/AndroidRuntime(12803): at com.fbla.sap.CreateAccFragment$2.onClick(CreateAccFragment.java:148)
02-01 23:32:03.260: E/AndroidRuntime(12803): at android.view.View.performClick(View.java:4475)
02-01 23:32:03.260: E/AndroidRuntime(12803): at android.view.View$PerformClick.run(View.java:18784)
02-01 23:32:03.260: E/AndroidRuntime(12803): at android.os.Handler.handleCallback(Handler.java:730)
02-01 23:32:03.260: E/AndroidRuntime(12803): at android.os.Handler.dispatchMessage(Handler.java:92)
02-01 23:32:03.260: E/AndroidRuntime(12803): at android.os.Looper.loop(Looper.java:137)
02-01 23:32:03.260: E/AndroidRuntime(12803): at android.app.ActivityThread.main(ActivityThread.java:5450)
02-01 23:32:03.260: E/AndroidRuntime(12803): at java.lang.reflect.Method.invokeNative(Native Method)
02-01 23:32:03.260: E/AndroidRuntime(12803): at java.lang.reflect.Method.invoke(Method.java:525)
02-01 23:32:03.260: E/AndroidRuntime(12803): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1187)
02-01 23:32:03.260: E/AndroidRuntime(12803): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1003)
02-01 23:32:03.260: E/AndroidRuntime(12803): at dalvik.system.NativeStart.main(Native Method)
改变
返回mysql\u fetch\u数组($schresult)代码>
到
返回mysql\u fetch\u数组($schsearch)代码>在SQL查询中的schu state
中缺少开头的反勾号。这个问题有很多错误。你在我们身上扔了大量的代码,而且还不完整。您希望我们在不进行任何调试的情况下发现未指定的错误。你必须缩小问题的范围。从PHP端开始,调试它并确保它正常工作。然后向上移动。学习一些正确的调试技巧。PHP代码片段给出的任何异常都可能提供更多有用的信息。我建议从PHP块开始解决这个问题。问题是,我不知道我到底在做什么。我已经做了好几个小时的调试,但都没有用。我直接跳了进去,所以我不一定知道如何修复这些东西。
public function schoolSearch($school, $state, $city){
$schsearch=mysql_query("
SELECT `sch_name`, `sch_id`,sch_state`,`sch_city`
FROM `schools`
WHERE (`sch_name`=$school) AND (`sch_state`=$state) AND (`sch_city`=$city)
");
/**$searchresult=array();-
while($schresult=mysql_fetch_array($schsearch)) {
array_push($searchresult, $schresult['sch_id']."=>".$schresult['sch_name']);
}**/
return mysql_fetch_array($schresult);
/**if (count($searchresult) > 0) {
return $searchresult;
} else {
return false;
}**/
}
02-01 23:32:03.260: E/AndroidRuntime(12803): FATAL EXCEPTION: main
02-01 23:32:03.260: E/AndroidRuntime(12803): java.lang.NullPointerException
02-01 23:32:03.260: E/AndroidRuntime(12803): at com.fbla.sap.CreateAccFragment$2.onClick(CreateAccFragment.java:148)
02-01 23:32:03.260: E/AndroidRuntime(12803): at android.view.View.performClick(View.java:4475)
02-01 23:32:03.260: E/AndroidRuntime(12803): at android.view.View$PerformClick.run(View.java:18784)
02-01 23:32:03.260: E/AndroidRuntime(12803): at android.os.Handler.handleCallback(Handler.java:730)
02-01 23:32:03.260: E/AndroidRuntime(12803): at android.os.Handler.dispatchMessage(Handler.java:92)
02-01 23:32:03.260: E/AndroidRuntime(12803): at android.os.Looper.loop(Looper.java:137)
02-01 23:32:03.260: E/AndroidRuntime(12803): at android.app.ActivityThread.main(ActivityThread.java:5450)
02-01 23:32:03.260: E/AndroidRuntime(12803): at java.lang.reflect.Method.invokeNative(Native Method)
02-01 23:32:03.260: E/AndroidRuntime(12803): at java.lang.reflect.Method.invoke(Method.java:525)
02-01 23:32:03.260: E/AndroidRuntime(12803): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1187)
02-01 23:32:03.260: E/AndroidRuntime(12803): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1003)
02-01 23:32:03.260: E/AndroidRuntime(12803): at dalvik.system.NativeStart.main(Native Method)