Android中的值未传递给PHP

时间:2016-07-23 18:04:42

标签: php android

我在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

1 个答案:

答案 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的原因。