MySql数据库以及持有utf8_unicode_ci
归类的表和列。这就是我通过核心PHP在mysql表中插入一行的方法:
这是服务器页面文件名为getregister.php的核心PHP代码。
$Insert = $con->query("INSERT INTO `USERS` (`ID`, `NAME`, `PHONE`, `CODE`) VALUES (NULL, '$NewUserName', '$NewUserMobile', '$UserCode')");
if ($Insert === false)
{
echo "REPORT DEVELOPER EXCEPTION_CODE_7";
exit();
}
else
{
echo "SUCCESS_NEW";
exit();
}
在android设备布局Edittext
中,我允许+ Character too
的最终用户使用0到9:
这是用于edittext XML的本地android代码
<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" />
这就是我打开与服务器PHP页面的连接的方式:
这是一个Java代码,并且是适合布局的Java代码
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();
一切正常。但问题是:
在此先感谢您的阅读,帮助和宝贵的时间
编辑:2
按照@jeroen给我有关UTF8编码的提示,我对android studio项目中的java代码进行了相应的更改,如下所示:
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中。
答案 0 :(得分:1)
要在问题下方添加注释:您正在手动构建查询字符串,并且查询字符串中的某些字符具有特殊含义,例如&
,=
以及{{1 }},这是一个已编码的空间。
因此,要在查询字符串中发送实数值,您需要对其进行正确编码。
在这种情况下,例如+
应该是deviceid
,对于所有其他值,依此类推。