我正在使用mysqli进行以下操作
$name = trim($_GET['uname']);
$pswd = trim($_GET['password']);
$connection = new dbconnection();
$con = $connection->connectToDatabase();
$login_check = mysqli_query($con, "SELECT * FROM `vendor` WHERE `username` = 'admin' AND `password` = 'admin' AND `vendorType` = 0");
print($login_check);
if ($login_check)
{
echo "details is there";
}
else
{
echo "details none";
}
当我删除打印($ login_check);线
它给出了"细节是"错误的信息
答案 0 :(得分:1)
if ($login_check)
即使没有找到记录,也会返回true。
尝试将其更改为:
if($login_check->num_rows > 0)
检查是否找到了任何行。
答案 1 :(得分:0)
$login_check
是对象资源,无法使用echo
或print
进行打印。
您应该使用循环(最可能是while
)遍历结果集,并显示/分配查询中的输出数据。
答案 2 :(得分:0)
mysqli_query
会返回mysqli_result
个对象,使用print($login_check);
时无法将其转换为字符串。
您可以使用mysqli_result::$num_rows
来检查结果的编号。
$login_check = mysqli_query($con, "SELECT * FROM `vendor` WHERE `username` = 'admin' AND `password` = 'admin' AND `vendorType` = 0");
if ($login_check->num_rows > 0) {
echo "details is there";
} else {
echo "details none";
}
更好的是,如果您只想查看是否存在,可以将SELECT *
更改为SELECT 1
。
答案 3 :(得分:0)
您应该使用输出错误方法:
echo $mysqli->error;
也尝试使用mysqli::debug($message)
答案 4 :(得分:0)
$login_check = mysqli_query($con, "SELECT * FROM `vendor` WHERE `vendorType` = 0");
$info = mysqli_fetch_array( $login_check );
if (($info['username']==$name) && ($info['password']==$pswd))
{
echo "details is there";
}
else
{
echo "details none";
}
它会起作用..