mysql_num_rows()期望参数1是资源,给定布尔值(查询正确)

时间:2014-08-23 23:54:33

标签: php

这是我的代码我不认为我的查询有问题,但我不断收到此错误" mysql_num_rows()期望参数1是资源,布尔值在"我检查了我的数据库,以确保没有拼写错误和引号,但仍然是这个错误

                                    if(isset($_POST['e_username']) && isset($_POST['e_password'])){

                                        $e_username = preg_replace('#[^A-Za-z0-9]#i','', $_POST['e_username']);
                                        $e_password = preg_replace('#[^A-Za-z0-9]#i','',$_POST['e_password']);

                                        $e_password_md5 = md5($e_password);


                                        $sql = @mysql_query("SELECT * FROM employee_db WHERE username='$e_username' AND password ='$e_password_md5' LIMIT 1") || die("Unable to run query".mysql_error());
                                        $userCount = mysql_num_rows($sql);

                                            if ($userCount == 1){

                                                $_SESSION['e_username'] = $e_username;
                                                header("Location:profile.php");
                                                exit();


                                            }else{

                                                //echo "<div class =\"error\">Incorrect Infomation Register --------></div>";
                                            }   

                                        }

1 个答案:

答案 0 :(得分:0)

问题是因为您在查询结束时有|| die(...) - 这会将您的结果转换为条件结果,即布尔结果。

尝试删除|| die(...)并使用不同形式的错误检查,例如try / catch块,或使用mysql_errno()(如果没有错误,此方法的结果为零;或者如果有,则为正整数。