0

我正在开发一个示例 android 应用程序,它有两个 EditTexts 和一个“保存”按钮。它从 EditTexts 获取数据并使用 PHP 将其发布到 MySQL 服务器。代码很糟糕。

我的 onClick 方法来保存数据

 public void saveMy(View v)
{
    name=e1.getText().toString();
    no=e2.getText().toString();
    try {
            httpclient = new DefaultHttpClient();
            httppost = new HttpPost("http://10.0.2.2/GujaratiApp/myPHP.php");


            ArrayList<NameValuePair> postParameters = new ArrayList<NameValuePair>();
                    postParameters.add(new BasicNameValuePair("Name",name));
            postParameters.add(new BasicNameValuePair("No",no));
            httppost.setEntity(new UrlEncodedFormEntity(postParameters));

            HttpResponse response = httpclient.execute(httppost);
            Log.i("postData", response.getStatusLine().toString());
        }
    catch(Exception ex)
    {
        Log.e("log_tag", "Error:  "+ex.toString());
    }  


}

PHP代码是:

<?php 
mysql_connect("localhost","root","") or die(mysql_error());
mysql_select_db("newDB");
$name =   $_POST['Name'];
$no = $_POST['No'] ;

$query_add="INSERT INTO  myData (`name` ,`no` ) VALUES ('.$name','.$no')";


$query_exec=mysql_query($query_add) or die(mysql_error()); 


mysql_close();

?>

当我单击“保存”按钮时,LogCat 中有一条消息表明 HTTP/1.1 200 OK。当我在 MySQL 监视器中触发查询时,它会在表中添加一行,但添加的行不显示任何内容。见下图:在此处输入图像描述

我不知道出了什么问题..请帮帮我。

提前致谢。

4

1 回答 1

0

请对 mySQL 中的列添加空检查,使字段成为必填项。

ALTER TABLE myData Modify name varchar(xyz) NOT NULL;
ALTER TABLE myData Modify no varchar(abc) NOT NULL;

之后请检查您是否收到响应状态 200。这将验证服务上是否正确接收了 post 参数。如果没有,那么您可以尝试通过将这些参数附加到 URL 来通过 URL 本身传递这些参数。

httpclient = new DefaultHttpClient();
httppost = new HttpPost("http://10.0.2.2/GujaratiApp/myPHP.php?name=" + name + "&no=" + no);
HttpResponse response = httpclient.execute(httppost);

如果

UrlEncodedFormEntity(postParameters)

不管用。

于 2012-08-19T05:59:29.430 回答