【问题标题】:send data from android to php and php store a Sequence of ? in mysql将数据从 android 发送到 php 和 php 存储一个序列?在mysql中
【发布时间】:2014-01-25 14:39:36
【问题描述】:

我正在使用以下代码将数据从我的应用程序发送到我服务器上的 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);
?>

但数据保存在数据库中,如“??????????”

我已经搜索了很多,但我没有找到一种方法来使它正常工作。

【问题讨论】:

  • 我没有在您的代码中看到您将 Ptype 键值对添加到 postList 列表中。您是否将 PWeight 写入数据库?如果是这样,它会通过 POST 请求正确发送吗?
  • 只是打字问题;我更正了
  • 是所有字符都被转换为? 还是只是非ASCII 字符?为获得一致的 Unicode 支持,您应该在两边都使用 UTF-8:在客户端使用 new UrlEncodedFormEntity(postList, "UTF-8"),在应用服务器使用 mysql_set_charset('utf-8'),在数据库服务器使用 UTF-8 排序表。
  • 非常感谢@bobince; new UrlEncodedFormEntity(postList, "UTF-8") 解决了我的问题,一切正常

标签: php android mysql unicode


【解决方案1】:

首先感谢@bobince 的帮助

1-在mysql中将字段集合设置为“utf8_persian_ci”

2- 在连接到数据库后的 php 代码中运行此代码

mysql_query("SET NAMES 'UTF8'");

3- 在 android 代码中使用 UTF-8 编码像这个代码

new UrlEncodedFormEntity(postList, "UTF-8")

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

【讨论】:

  • 首选mysql_set_charset('utf-8') 而不是SET NAMES。后者未正确更新mysql_real_escape_string 使用的编码信息,使其与mysql_escape_string 实际上相同。
  • @bobince 再次感谢你;我只是使用 mysql_query("SET NAMES 'UTF8'");在 php 脚本中并在 android 应用程序中使用 new UrlEncodedFormEntity(postList, "UTF-8") 并从 php 脚本中删除 mysql_real_escape_string;一切都很完美:)
  • 不要删除mysql_real_escape_string,你需要它来避免SQL注入漏洞! (一般来说,最好将mysqli 或PDO 与参数化查询一起使用,这样您就不必每次都显式使用mysql_real_escape_string,但如果您坚持使用mysql,那么这种SQL 转义是必不可少的.)
猜你喜欢
  • 2018-06-07
  • 1970-01-01
  • 2016-03-30
  • 1970-01-01
  • 1970-01-01
  • 2015-04-11
  • 1970-01-01
  • 2014-04-09
  • 1970-01-01
相关资源
最近更新 更多