我在本地服务器上创建一个登录,在添加任何数据之前检查表中是否存在用户。
这是我用来选择用户信息的代码:
$name1 = mysql_real_escape_string($_POST['studentname']);
$num = mysql_real_escape_string($_POST['studentnum']);
$qw = "SELECT name FROM students WHERE name = '$name1'";
$qw1 = "SELECT studentnum FROM students WHERE studentnum = '$num'";
$namematch = mysql_query($qw) or die(mysql_error());
$nummatch = mysql_query($qw1) or die(mysql_error());
但是,如果从每个查询中检索数据,我对于if()语句应该输入什么来注册为TRUE我感到困惑:
if (!($namematch && $nummatch) {
die('Name or student number do not match those on record');
}
即使我输入的信息不正确,上述代码也不一样。
答案 0 :(得分:3)
答案 1 :(得分:1)
在您的代码中
if (!($namematch && $nummatch) {
die('Name or student number do not match those on record');
}
$ namematch和$ nummatch永远是真的
$ namematch和$ nummatch只是mysql_query资源标识,资源类型始终存在
也许你应该这样做:
$nameExists = mysql_fetch_assoc($namematch);
$numExists = mysql_fetch_assoc($nummatch);
if (!($nameExists && $numExists )) {
die('Name or student number do not match those on record');
}
答案 2 :(得分:0)
$namematch = mysql_num_rows($namematch);
$nummatch = mysql_num_rows($nummatch);
if (!($namematch && $nummatch) {
die('Name or student number do not match those on record');
}
请立即使用PDO!