在Android中显示PHP错误
我有一个使用AsyncTask连接MySQL数据库的应用程序。我可以连接到数据库并输入数据。但我想知道是否有一种方法可以将PHP生成的错误消息返回到Android Toast 即,电子邮件地址aready存在 Android代码(如果需要)在Android中显示PHP错误,php,android,Php,Android,我有一个使用AsyncTask连接MySQL数据库的应用程序。我可以连接到数据库并输入数据。但我想知道是否有一种方法可以将PHP生成的错误消息返回到Android Toast 即,电子邮件地址aready存在 Android代码(如果需要) 私有类InsertData扩展异步任务 { ProgressDialog=新建ProgressDialog(Register.this); @凌驾 受保护的void onPreExecute() { setMessage(“发送数据…”); dialog.s
私有类InsertData扩展异步任务
{
ProgressDialog=新建ProgressDialog(Register.this);
@凌驾
受保护的void onPreExecute()
{
setMessage(“发送数据…”);
dialog.show();
}
@凌驾
受保护的布尔doInBackground(字符串…URL)
{
for(字符串url1:URL)
{
尝试
{
ArrayList pairs=新的ArrayList();
添加(新的BasicNameValuePair(“fname”,fname));
添加(新的BasicNameValuePair(“lname”,lname));
添加(新的BasicNameValuePair(“电子邮件”,email));
HttpClient=new DefaultHttpClient();
HttpPost=新的HttpPost(url1);
setEntity(新的UrlEncodedFormEntity(对));
HttpResponse response=client.execute(post);
}
捕获(客户端协议例外e)
{
Toast.makeText(Register.this,e.toString(),Toast.LENGTH_LONG).show();
返回false;
}
捕获(IOE异常)
{
Toast.makeText(Register.this,e.toString(),Toast.LENGTH_LONG).show();
返回false;
}
}
返回true;
}
@凌驾
受保护的void onPostExecute(布尔结果)
{
如果(结果==真)
{
Toast.makeText(Register.this,“Insert Success”,Toast.LENGTH_LONG.show();
}
其他的
{
Toast.makeText(Register.this,“Error”,Toast.LENGTH_LONG.show();
}
dialog.dismise();
}
}
PHP代码(如果需要)
SQL应该可以解决您的问题。我会查询您的数据库,检查输入的字段是否与数据库中存储的电子邮件相匹配 比如说
$chkuser = "select from users
where email = '$em'";
$cku = $dbc->query($chkuser);
因为$em是插入中使用的。我会在你输入数据之前进行检查。只需对照查询检查的结果检查变量num_rows
,如果结果大于0,则可以传递错误。像这样
$num = $cku->num_rows;
if ($num == 0) {
//execute the query you already have listed
}
else {
//error message
}
当然您可以根据需要让echo()调用php脚本。但是您必须从客户端的输入流中读取这些回声。你没有阅读这些回音,所以你什么也没做。读过之后,你可以在onPostExecute中为它们干杯。我有一种感觉,我需要使用一些JSON对象来实现这一点。这是Android的完整代码吗?我看不出接口在哪里是完整的,只有Java的异步类。好的,对不起,我帮不了你更多。仅供参考,您的php代码容易受到sql注入的攻击。我建议在插入之前准备好您的查询。我添加了strip_标记以停止我所认为的
$chkuser = "select from users
where email = '$em'";
$cku = $dbc->query($chkuser);
$num = $cku->num_rows;
if ($num == 0) {
//execute the query you already have listed
}
else {
//error message
}