我正在编写登录和注册应用程序的代码。下面是android代码& &;PHP注册脚本。mysql数据库表(my_table)中没有存储值
当我在浏览器中打开"http://fooddoof.freevar.com/Register.php"时,我得到了"解析错误:语法错误,意外的'$username' (T_VARIABLE)在/home/vhosts/fooddoof.freevar.com/Register.php上的第8行"错误。
Android Java Script:public class StoreUserDataAsyncTask extends AsyncTask<Void,Void,Void> {
User user;
GetUserCallback userCallback;
public StoreUserDataAsyncTask(User user,GetUserCallback userCallback){
this.user=user;
this.userCallback=userCallback;
}
@Override
protected Void doInBackground(Void... params) {
ContentValues contentValues=new ContentValues();
contentValues.put("username",user.username);
contentValues.put("password",user.password);
contentValues.put("email",user.email);
try {
URL url = new URL(SERVER_ADDRESS + "Register.php");
HttpURLConnection conn = (HttpURLConnection) url.openConnection();
conn.setConnectTimeout(CONNECTION_TIMEOUT);
conn.setReadTimeout(CONNECTION_TIMEOUT);
conn.setRequestMethod("POST");
conn.setDoInput(true);
conn.setDoOutput(true);
OutputStream out = conn.getOutputStream();;
BufferedWriter writer=new BufferedWriter(new OutputStreamWriter(out,"UTF-8"));
writer.write(String.valueOf(params));
writer.flush();
writer.close();
out.close();
} catch (java.io.IOException e) {
e.printStackTrace();
}
return null;
}
PHP脚本:
<?php
$con=mysqli_connect("localhost","862322","varna123","862322")
$username = $_POST["username"];
$password = $_POST["password"];
$email= $_POST["email"];
$statement = mysqli_prepare($con, "INSERT INTO my_table (username, password, email) VALUES (?, ?, ?)");
mysqli_stmt_bind_param($statement, "sss",$username, $password, $email);
mysqli_stmt_execute($statement);
mysqli_stmt_close($statement);
mysqli_close($con); ?>
此代码如有错误请帮忙
在行尾添加分号(;)(每个PHP语句都以分号结束)
反对美元= mysqli_connect("localhost"、"862322"、"varna123","862322"),
-
请在mysqli连接的末尾加上分号
-
如果没有检查来验证post输入,那么你肯定会在浏览器上得到错误。
使用PHP函数isset -
判断一个变量是否被设置并且不为NULL。Bool isset(混合)$var[,混合$…])
看到
下面是更新后的代码:
<?php
$con=mysqli_connect("localhost","862322","varna123","862322");
if(isset($_POST)) {
$username = $_POST["username"];
$password = $_POST["password"];
$email= $_POST["email"];
$statement = mysqli_prepare($con, "INSERT INTO my_table (username, password, email) VALUES (?, ?, ?)");
mysqli_stmt_bind_param($statement, "sss",$username, $password, $email);
mysqli_stmt_execute($statement);
mysqli_stmt_close($statement);
mysqli_close($con);
}
?>
你可以添加更多的isset检查来检查用户名等