我正在尝试按照本教程https://www.youtube.com/watch?v=JQXfIidfFMo&t=193s创建基本的注册和登录应用程序,并且由于Android Studio中的代码显示0编译错误,所以我决定不将其放在此处。
许多用户在新旧评论部分中都报告说,他们无法将信息发送到他们的数据库,因此,我们将不胜感激。用户输入其“名称”,“用户名”,“密码”和“年龄”进行注册,然后将该信息发送到位于000webhost上的我的数据库。一切都遵循了T。
表的名称称为“用户”。
这是我Login.php文件中的代码
<?php
$con = mysqli_connect("localhost:3306","id7390457_user","abcd1234","id7390457_data");
$username = $_POST["username"];
$password = $_POST["password"];
$statement = mysqli_prepare($con, "SELECT * FROM user WHERE username = ? AND password = ?");
mysqli_stmt_bind_param($statement, "ssis", $username, $password);
mysqli_stmt_execute($statement);
mysqli_stmt_store_result($statement);
mysqli_stmt_bind_result($statement, $user_id, $name, $age, $username, $password);
$response = array();
$response["success"] = false;
while(mysqli_stmt_fetch($statement)){
$response["success"] = true;
$response["name"] = $name;
$response["age"] = $age;
$response["username"] = $username;
$response["password"] = $password;
}
echo json_encode($response);
?>
这是我Register.php文件中的代码
<?php
$con = mysqli_connect("localhost", "id7390457_user", "abcd1234", "id7390457_data");
$name = $_POST["name"];
$age = $_POST["age"];
$username = $_POST["username"];
$password = $_POST["password"];
$statement = mysqli_prepare($con, "INSERT INTO user (name, age, username, password) VALUES (?, ?, ?, ?)");
mysqli_stmt_bind_param($statement, "ssis", $name, $age, $username, $password);
mysqli_stmt_execute($statement);
$response = array();
$response["success"] = true;
echo json_encode($response);
?>
我一直觉得那条线
$con = mysqli_connect("localhost", "id7390457_user", "abcd1234", "id7390457_data");
后跟使用('hostname','username','password','nameofdatabase')
但是,当我从Mac上执行此操作时,我的主机是“ localhost” 我的数据库名称是:id7390457_data 我的数据库用户是:id7390457_user
我尝试使用'localhost:3306' 我只尝试了“用户”和“数据” 我看过YouTube视频,用其他语言访问过网站,但似乎都没有提供任何建议。
我从头开始删除了多个数据库,但是仍然面临着我的信息无法发送到000webhost上的phpMyAdmin的问题。 我的网络托管商没有index.html页面,但我认为这不是问题。
任何帮助对我来说都意味着世界。谢谢,祝你一切顺利!
答案 0 :(得分:0)
嗨,欢迎来到StackOverflow!
您是对的,mysqli_connect
希望主机,用户,密码和数据库名按该顺序排列,因此,如果数据库正在运行并且值如您所说正确,则看起来不错。
但是,请注意第二个参数ssis
:
mysqli_stmt_bind_param($statement, "ssis", $name, $age, $username, $password);
它声明参数的类型,s
表示字符串,i
表示整数。顺序似乎混乱了,因为age
应该是字符串,username
是整数。如果您将其替换为siss
,我希望它可以正常工作。
更多信息:https://secure.php.net/manual/en/mysqli-stmt.bind-param.php