Данные не отправляются из AndroidStudio в phpMyAdmin / 000webhost - PullRequest
0 голосов
/ 08 октября 2018

Я пытаюсь создать базовое приложение для регистрации и входа, следуя этому руководству: https://www.youtube.com/watch?v=JQXfIidfFMo&t=193s и поскольку код в Android Studio показывает 0 ошибок компиляции, я решил не помещать этоздесь.

Что не так

Многие пользователи сообщили в разделе комментариев как старых, так и новых, что они не могут отправить свою информацию в свою базу данных, поэтому любая помощь будет принята с благодарностью.Пользователь вводит свои «имя», «имя пользователя», «пароль» и «возраст» для регистрации, и эта информация затем отправляется в мою базу данных, размещенную на 000webhost.Все было выполнено до T.

Имя таблицы называется 'user'.

Вот код моего файла 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' Я пробовал только 'user' и 'data' Я смотрел видео на YouTube, посещал сайты на других языках и ничегоЯ, кажется, предоставил какой-либо совет.

Я удалил несколько баз данных, начиная с нуля, но все еще сталкиваюсь с проблемой, из-за которой мои данные не отправляются в phpMyAdmin на 000webhost.У моего веб-хостинга нет страницы index.html, но я не думаю, что это будет проблемой.

Спасибо

Любая помощь будет означать для меня мир.Спасибо, желаю вам добра!

1 Ответ

0 голосов
/ 08 октября 2018

Привет и добро пожаловать в StackOverflow!

Вы правы, mysqli_connect ожидает имя хоста, пользователя, pass и db в указанном порядке, поэтому, если база данных работает и значения верны, как вы сказали, это выглядит нормально.

Однако в этой строке обратите внимание на второй аргумент 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

...