如果存在行,则检查MYSQL数据库

时间:2015-05-20 13:50:53

标签: php mysql

我试图检查我的数据库是否存在行,但它总是返回"另一个Employee"已存在用户ID,如果存在或不存在。这令我感到困惑,因为代码之前正在运行。我添加的最新更改是PHP会话,我认为这会破坏它吗?

对于会话,如果需要此信息,我会在页面顶部启动会话,如果会话为0,则会加载密码框,当输入正确的密码时,会话会话设置为1然后显示页面上的所有其他框,包括将员工添加到表中的那个,这是我遇到问题的地方。

这是输入框的代码:

<h1>Add New Employee</h1>
                                <form method="POST">
                                ID: <input name="IDadd" type="text"> 
                                Name: <input name="Nameadd" type="text"> 
                                Job: <select name='Jobadd'>
                                      <option value='IOS'>IOS</option>
                                      <option value='Remarketing'>Remarketing</option>
                                      <option value='Computers'>Computers</option>
                                      <option value='Beats'>Beats</option>
                                      <option value='Inventory'>Inventory</option>
                                      <option value='Check-In'>Check-In</option>
                                      <option value='Tech'>Tech</option>
                                      </select> 
                                <input value="Submit New Employee" type="submit" onsubmit="return false" id="newEmployee" name="newEmployee"><br><br></center>
                                </form>

以下是应该检查它是否已存在的代码。

if (isset($_POST['newEmployee'])) {

                            $userId = mysqli_real_escape_string( $con, $_POST[ 'IDadd' ] );
                            $userName   = mysqli_real_escape_string( $con, $_POST[ 'Nameadd' ] );
                            $userJob    = mysqli_real_escape_string( $con, $_POST[ 'Jobadd' ] );


                                $checkUserID = mysqli_query("SELECT `userId` FROM Employee WHERE `userId`='$userId'");
                                if (mysqli_num_rows($checkUserId) > 0) {
                                    $sql = "INSERT INTO Employee (userId, Name, Job, Week)
                                    VALUES ('$userId', '$userName', '$userJob', '$currentWeekIs')";
                                    mysqli_query($con, $sql);
                                } else {
                                    echo $userId . " " . $userName . " " . $userJob;
                                    echo "<center><br><br><h1>User ID ".$userId." already exists for another employee.</h1></center>";
                                }

                                }

所以,我想我的问题是,为什么它总是返回&#34;用户ID已经存在于另一个员工&#34;?或者,我如何解决这个问题有哪些替代方案?

1 个答案:

答案 0 :(得分:1)

您的查询失败,因为您没有将正确的参数传递给正在进行SELECT的mysqli_query()

第一个参数需要是连接资源,其次是查询本身。查看文档,确保在开发时查看错误日志,并在代码中包含错误处理。