我在Android Studio中有一个活动,它应该通过PHP脚本将输入日期传递到SQL数据库。除username
值之外的所有值都将通过。我也不太熟悉PHP和Android Studio,我现在正在从教程中学习。
以下是Android Studio中的相关代码。 (我给了他们文字字符串值来测试username
变量是否是问题,而不是,所有其他值都通过了。
super(Method.POST, REGISTER_REQUEST_URL, listener, null);
params = new HashMap<>();
params.put("name", "name");
params.put("password", "password");
params.put("username", "username");
params.put("age", age + "");
这是将这些值传递到SQL数据库的PHP脚本。 (我添加了通用$con
信息,但真实的脚本确实有真实的信息。)
<?php
$con = mysqli_connect(Host, User, Password, Database);
$name = $_POST["name"];
$age = $_POST["age"];
$username = $_POST["username"];
$password = $_POST["password"];
$statement = mysqli_prepare($con, "INSERT INTO user (name, username, age, password) VALUES (?, ?, ?, ?)");
mysqli_stmt_bind_param($statement, "siss", $name, $username, $age, $password);
mysqli_stmt_execute($statement);
$response = array();
$response["success"] = true;
echo json_encode($response);
?>
所有其他值都会被传递并保存在数据库中而不会出现问题,唯一有问题的是username
值,无论我尝试什么,它都会一直返回0
。我甚至尝试过一个php邮件脚本,以便它可以通过电子邮件发送它收到的变量,如果有帮助的话,它会收到0
。
答案 0 :(得分:0)
从
改变mysqli_stmt_bind_param($statement, "siss", $name, $username, $age, $password);
// /\
到
mysqli_stmt_bind_param($statement, "ssis", $name, $username, $age, $password);
// /\
如果您查看types parameter,您会发现您的代码实际上代表了这一点:
$name (s)
- 字符串$username (i)
- 整数 $age (s)
- 字符串$password (s)
- 字符串所以,你基本上是在说&#39;你的$username
是一个整数。这就是你获得0
的原因。