我正在创建一个应用程序,允许用户注册他们的姓名,年龄等。我将所有这些信息存储在一个User类中,如下所示:
public class User {
String name, username, password, phoneNumber;
int age;
//constructor
public User(String _name, String _username, String _password, String _phoneNumber, int _age){
name = _name;
username = _username;
password = _password;
phoneNumber = _phoneNumber;
age = _age;
}
}
我发送的数据到PHP脚本存储在SQL数据库。代码如下:
protected Void doInBackground(Void... params) {
ArrayList<NameValuePair> dataToSend = new ArrayList<>();
dataToSend.add(new BasicNameValuePair("name", user.name));
dataToSend.add(new BasicNameValuePair("age", user.age + ""));
dataToSend.add(new BasicNameValuePair("username", user.username));
dataToSend.add(new BasicNameValuePair("password", user.password));
dataToSend.add(new BasicNameValuePair("phoneNumber", user.phoneNumber));
HttpParams httpRequestParams = new BasicHttpParams();
HttpConnectionParams.setConnectionTimeout(httpRequestParams, CONNECTION_TIMEOUT);
HttpConnectionParams.setSoTimeout(httpRequestParams, CONNECTION_TIMEOUT);
HttpClient client = new DefaultHttpClient(httpRequestParams);
HttpPost post = new HttpPost(SERVER_ADDRESS + "Register.php");
try{
post.setEntity(new UrlEncodedFormEntity(dataToSend));
client.execute(post);
}catch(Exception e){
e.printStackTrace();
}
return null;
}
现在我想创建大约10个复选框,它们的状态(已选中或未选中)我可以存储。我知道我可以创建一堆布尔值作为User类的一部分,但这似乎很麻烦,而且是不好的做法。因此,我的问题是,如何最好地将CheckBox数据存储在SQL数据库中?
作为参考,PHP脚本如下:<?php
$con = mysqli_connect("localhost", "root", "", "is_clients");
$name = $_POST["name"];
$age = $_POST["age"];
$username = $_POST["username"];
$password = $_POST["password"];
$phoneNumber = $_POST["phoneNumber"];
$statement = mysqli_prepare($con, "INSERT INTO user (name, age, username, password, phoneNumber) VALUES (?, ?, ?, ?, ?) ");
mysqli_stmt_bind_param($statement, "sisss", $name, $age, $username, $password, $phoneNumber);
mysqli_stmt_execute($statement);
mysqli_stmt_close($statement);
mysqli_close($con);
?>
你可以传递一个数组给PHP,数组中的每个元素可以是一个复选框值。在PHP中,你可以通过使用像checkBoxesArr[]这样的括号变量来实现这一点,这样你就可以使用相同的变量,并且每次出现都会成为数组中的另一个元素。
因此,在Java中(checkBoxXXXValue可以是二进制或布尔值):
dataToSend.add(new BasicNameValuePair("checkBoxArr[]", checkBoxOneValue));
dataToSend.add(new BasicNameValuePair("checkBoxArr[]", checkBoxTwoValue));
dataToSend.add(new BasicNameValuePair("checkBoxArr[]", checkBoxThreeValue));
PHP: $checkBoxArr = $_POST['checkBoxArr'];
print_r($checkBoxArr);
这是你想要的吗?