从android向php发送数据,php存储一系列数据?在mysql中

从android向php发送数据,php存储一系列数据?在mysql中,php,android,mysql,unicode,Php,Android,Mysql,Unicode,我使用以下代码将数据从应用程序发送到服务器上的PHP脚本: postList.add(new BasicNameValuePair("PType", TxtWeight.getText().toString())); String StrURL="http://chacho.comuv.com/android/insert_pistachio_sell.php"; myJsonObject=JP.store_And_Feedback("PType",SpnPistachio.getSelect

我使用以下代码将数据从应用程序发送到服务器上的PHP脚本:

postList.add(new BasicNameValuePair("PType", TxtWeight.getText().toString()));

String StrURL="http://chacho.comuv.com/android/insert_pistachio_sell.php";
myJsonObject=JP.store_And_Feedback("PType",SpnPistachio.getSelectedItem().toString()));
DefaultHttpClient DHC=new DefaultHttpClient();
HttpPost httpPost=new HttpPost("StrURL");
httpPost.setEntity(new UrlEncodedFormEntity(postList));
以下PHP代码将接收到的数据存储在我的数据库中:

<?php
    require_once "./includes/DB_Connect.php"
    $PType=$_POST['PType'];

    $SQL="INSERT INTO  sell (ptype)VALUES ('".mysql_real_escape_string($PType)."')";
    $Result=mysql_query($SQL);
?>

首先我感谢@bobince的帮助

1-在mysql中,将字段集合设置为“utf8\u波斯语\u ci”

2-在php代码连接到db后运行此代码

mysql_query("SET NAMES 'UTF8'");
3-在android代码中使用UTF-8编码,如下代码所示

new UrlEncodedFormEntity(postList, "UTF-8")

数据将正确保存在mysql数据库中

我在代码中没有看到您将
Ptype
键值对添加到postList列表中。你正在把重量写入数据库吗?如果是这样的话,通过POST请求发送的信息是否正确?这只是一个打字问题;我更正了所有字符是转换为
还是仅转换为非ASCII字符?要获得一致的Unicode支持,您应该在两侧使用UTF-8:在客户端使用
new UrlEncodedFormEntity(postList,“UTF-8”)
,在应用服务器使用
mysql\u set\u charset('UTF-8')
,在数据库服务器使用UTF-8-collated tables。非常感谢@bobince;新的UrlEncodedFormEntity(postList,“UTF-8”)解决了我的问题,一切都正常。更喜欢
mysql\u set\u charset('UTF-8')
而不是
set name
。后者没有正确更新
mysql\u real\u escape\u string
使用的编码信息,使其与
mysql\u escape\u string
@bobince再次感谢您;我只是使用mysql_查询(“设置名称‘UTF8’”);在php脚本中,在android应用程序中使用新的UrlEncodedFormEntity(postList,“UTF-8”),并从php脚本中删除mysql_real_escape_字符串;一切都很完美:)不要删除
mysql\u real\u escape\u string
,你需要它来避免SQL注入漏洞!(一般来说,最好将
mysqli
或PDO与参数化查询一起使用,这样就不必每次都显式地使用
mysql\u real\u escape\u string
,但如果坚持使用
mysql
,那么这种SQL转义是必不可少的。)