Количество переменных связывания не совпадает с количеством полей в подготовленном выражении в php и android - PullRequest
0 голосов
/ 20 ноября 2018

Я попытался запустить этот скрипт через Android, но ответ таков;

Количество переменных связывания не соответствует количеству полей в подготовленном утверждении

Я не знаю, что это значит, но мой сценарий должен был просто зарегистрировать человекаесли их входная информация верна.Затем возьмите строку из БД и верните ее обратно на Android.Может кто-нибудь объяснить, что я делаю не так?И что вообще означает эта ошибка?

Мой скрипт выглядит так;

<?php
    $db_host = 'localhost:3306';
    $db_user = 'root';
    $db_pass = '';
    $db_name = 'test';

    $con = mysqli_connect($db_host,'user',$db_pass,$db_name);
    $username = $_POST["username"];
    $password = $_POST["password"];
    $statement = mysqli_prepare($con, "SELECT * FROM cresidentials WHERE username = ? AND password = ?");
    mysqli_stmt_bind_param($statement,"ss",$usermame,$password);
    mysqli_stmt_execute($statement);

    mysqli_stmt_store_result($statement);
    mysqli_stmt_bind_result($statement,$username,$password,$isAdmin);
    echo $isAdmin;
    ?>

Ответы [ 2 ]

0 голосов
/ 20 ноября 2018
Таблица

OP, конечно же, также имеет столбец id (который я обнаружил после того, как он поделился со мной снимком экрана через чат), вам также нужно связать его.

mysqli_stmt_bind_result($statement, $user_id, $username, $password, $isAdmin);

Вместо:

mysqli_stmt_bind_result($statement,$username,$password,$isAdmin);

0 голосов
/ 20 ноября 2018

Ваша таблица имеет четыре столбца, но вы связываете только три из них.Измените это:

mysqli_stmt_bind_result($statement,$username,$password,$isAdmin);

На это:

mysqli_stmt_bind_result($statement,$id,$username,$password,$isAdmin);

Или измените свой выбор из этого:

SELECT * FROM ...

На это:

SELECT username, password, isAdmin FROM ...
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...