Php 避免MySql在插入操作时省略+符号

Php 避免MySql在插入操作时省略+符号,php,android,mysql,Php,Android,Mysql,MySql数据库以及包含utf8\U unicode\U ci排序规则的表和列。这就是我如何通过核心PHP在mysql表中插入一行: 这是名为getregister.PHP的服务器页面文件上的核心PHP代码 从android设备布局编辑文本中,我允许最终用户使用0到9,并带有+字符: 这是edittext XML的本机android代码 一切按预期进行;但问题是: 如果我输入手机号码为+919999999 它被存储在MySql中作为白色空间 在MySql或androids OpenConnect

MySql数据库以及包含utf8\U unicode\U ci排序规则的表和列。这就是我如何通过核心PHP在mysql表中插入一行:

这是名为getregister.PHP的服务器页面文件上的核心PHP代码

从android设备布局编辑文本中,我允许最终用户使用0到9,并带有+字符:

这是edittext XML的本机android代码

一切按预期进行;但问题是:

如果我输入手机号码为+919999999 它被存储在MySql中作为白色空间 在MySql或androids OpenConnection中插入时,+符号被删除并替换为空白 提前感谢您的阅读、帮助和宝贵的时间

编辑:2

根据@jeroen给我的关于UTF8编码的提示,我对android studio项目中的java代码对我的http open url连接做了一些相应的更改,如下所示:

URL url = new URL("https://www.example.com/getregister.php");
        HttpsURLConnection connection = (HttpsURLConnection) url.openConnection();

        connection.setRequestMethod("POST");
        connection.setDoInput(true);
        connection.setDoOutput(true);

        Uri.Builder builder = new Uri.Builder()
                .appendQueryParameter("DEVICEID", deviceid)
                .appendQueryParameter("NAME", name)
                .appendQueryParameter("PHONE", phone)
                .appendQueryParameter("CODE", code);

        String query = builder.build().getEncodedQuery();

        OutputStream os = connection.getOutputStream();
        BufferedWriter writer = new BufferedWriter(new OutputStreamWriter(os, "UTF-8"));
        writer.write(query);
        writer.flush();
        writer.close();
        os.close();

        connection.connect();

现在+字符被存储在MySql中。

要添加到您问题下面的注释中:您正在手动构建一个查询字符串,查询字符串中的一些字符具有特殊含义,如&、=以及+这是一个编码空间

因此,要发送查询字符串中的实际值,需要对它们进行正确编码


例如,在本例中,对于所有其他值,deviceid应该是urlcoder.encodedeviceid、utf-8等等。

您的脚本甚至可以在MYSQLI_uu或PDO API的第一个调试步骤中使用:在PHP中执行var_dump$POST,以查看PHP的实际情况Script@RiggsFolly,我正在使用mysqli\u real\u escape$con,POSTVAR,请关注主要问题您必须将URL参数编码为URL字符,请参阅:您的代码看起来不像PHP,是Javascript吗?因此我无法帮助您实现确切的功能。请参阅,甚至关注您的用户安全和privacy@jeron,是的,它帮助我满足了解决方案,我用它作为提示。感谢你关注这个问题,在一群下层选民中,他们甚至不需要努力阅读
<EditText
        android:id="@+id/UserPhone"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_below="@+id/UserName"
        android:hint="NUMBER  HERE.."
        android:layout_marginBottom="15dp"
        android:layout_marginLeft="10dp"
        android:layout_marginRight="2dp"
        app:met_iconPadding="0dp"
        app:met_iconRight="@drawable/ic_phone"
        app:met_minCharacters="10"
        app:met_maxCharacters="20"
        android:inputType="number"
        android:digits="0,1,2,3,4,5,6,7,8,9,+"
        android:textStyle="bold" />
String urlParameters = "DEVICEID="+deviceid+"&NAME="+name+"&PHONE="+phone+"&CODE="+code;
URL url = new URL("https://example.com/getregister.php");
connection = url.openConnection();
connection.setDoOutput(true);

OutputStreamWriter writer = new OutputStreamWriter(connection.getOutputStream());

writer.write(urlParameters);
writer.flush();

Log.d("GetRegistered : ", "OPENING : "+ url +" \n");

InputStream is = null;
is = connection.getInputStream();
URL url = new URL("https://www.example.com/getregister.php");
        HttpsURLConnection connection = (HttpsURLConnection) url.openConnection();

        connection.setRequestMethod("POST");
        connection.setDoInput(true);
        connection.setDoOutput(true);

        Uri.Builder builder = new Uri.Builder()
                .appendQueryParameter("DEVICEID", deviceid)
                .appendQueryParameter("NAME", name)
                .appendQueryParameter("PHONE", phone)
                .appendQueryParameter("CODE", code);

        String query = builder.build().getEncodedQuery();

        OutputStream os = connection.getOutputStream();
        BufferedWriter writer = new BufferedWriter(new OutputStreamWriter(os, "UTF-8"));
        writer.write(query);
        writer.flush();
        writer.close();
        os.close();

        connection.connect();