我尝试通过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;
?>
最佳答案
OP的表格中当然也有一个id
列(我在他通过聊天与我分享屏幕截图后才发现的),您还需要绑定它。mysqli_stmt_bind_result($statement, $user_id, $username, $password, $isAdmin);
代替:mysqli_stmt_bind_result($statement,$username,$password,$isAdmin);
关于php - 绑定(bind)变量的数量与php和android中的prepared语句中的字段数不匹配,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53396283/