我正在尝试插入会话并回显如果登录名,密码和状态为1,那么如果它正确则会插入其会话,如果错误则回显消息但查询失败,请感谢任何帮助!
if(isset($submit))
{
$query=mysql_query("select * from mst_user where login='$loginid' and pass='$pass' AND status IS 1");
$result_check_credentials = mysql_query($query);
if(!$result_check_credentials){//If the QUery Failed
echo 'Query Failed ';
}
if (@mysql_num_rows($result_check_credentials) == 1)
{
$_SESSION[login]=$loginid;
echo " working";
}
else
{
echo 'sads';
}
}
if (isset($_SESSION[login]))
{
echo 'welcome'
}
exit;
?>
答案 0 :(得分:0)
我会假设你还在学习,但请切换到PDO甚至是mysqli。很多教程都在那里。
但是回答你的问题是$ query定义了吗?
例如: $ query = mysql_connect(' example.com:3307',' mysql_user',' mysql_password');
答案 1 :(得分:0)
status IS 1
应为status = 1
。 IS
只能用作IS NULL
或IS NOT NULL
的一部分,它不是一般的等式运算符。
另一个问题是:
$result_check_credentials = mysql_query($query);
mysql_query()
的参数必须是字符串,但$query
是调用mysql_query()
的结果,因此您无需再次调用它。将上一行更改为:
$query = "select * from mst_user where login='$loginid' and pass='$pass' AND status = 1";
其他问题:
当查询失败时,您应该退出代码,而不是转到调用mysql_num_rows()
的代码。
$_SESSION[login]
应为$_SESSION['login']
。
答案 2 :(得分:0)
你在这做什么?:
$query = mysql_query("select * from mst_user where login='$loginid' and pass='$pass' AND status IS 1");
$result_check_credentials = mysql_query($query);
您正在执行查询,然后尝试重新执行查询的结果?
只需执行一次查询。返回的值将是该查询的结果。在这种情况下,mst_user
表中的记录为零或更多。 (如果查询失败,则为false
。)