Php 避免MySql在插入操作时省略+符号
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连接做了一些相应的更改,如下所示: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
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();