Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/192.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在Android中显示PHP错误_Php_Android - Fatal编程技术网

在Android中显示PHP错误

在Android中显示PHP错误,php,android,Php,Android,我有一个使用AsyncTask连接MySQL数据库的应用程序。我可以连接到数据库并输入数据。但我想知道是否有一种方法可以将PHP生成的错误消息返回到Android Toast 即,电子邮件地址aready存在 Android代码(如果需要) 私有类InsertData扩展异步任务 { ProgressDialog=新建ProgressDialog(Register.this); @凌驾 受保护的void onPreExecute() { setMessage(“发送数据…”); dialog.s

我有一个使用AsyncTask连接MySQL数据库的应用程序。我可以连接到数据库并输入数据。但我想知道是否有一种方法可以将PHP生成的错误消息返回到Android Toast

即,电子邮件地址aready存在

Android代码(如果需要)

私有类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
}