繁体   English   中英

检查数据库中是否存在loginName

[英]Check to see whether loginName already exists or not in Database

我要实现的目标:检查我的某一行中是否已经存在“名称”。

问题:即使行已经存在,它也会继续添加行。

我一直在寻找StackOverflow,但还没有真正发现可能导致相同问题的东西。

是的,我已经在mysqli_db中检查了我的类型,它是VARCHAR (255) 因此,我要传递的类型是“字符串”(我正在使用准备好的语句)。

我已经检查了变量$loginName ,这也是正确的(如正确的变量im继续)。

我还检查了我是否在与表或行(loginName)有关的$sqli语句中输入了错字,但sqli语句正确。

我的代码如下所示:

include_once 'dbConn.php';
 $loginName = $_POST['loginName'];
 $userName = $_POST['userName'];
 $pwd = $_POST['pwd'];
 $confirmPWD = $_POST['confirmPWD'];

            $sqli = "SELECT * FROM registerandlogin WHERE loginName = ?";
            $stmt = mysqli_stmt_init($conn);

            if (!mysqli_stmt_prepare($stmt, $sqli)) {
                header('Location: index.php?prep=failed');
                exit();
            } else {
                mysqli_stmt_bind_param($stmt, 's', $loginName);
                $result = mysqli_stmt_get_result($stmt);
                $resultCheck = mysqli_num_rows($result);

                if ($resultCheck > 0) {
                    header('Location: index.php?loginName=taken');
                    exit();
                } else {
//do something else  
}

我忘记了以下代码: mysqli_stmt_execute($stmt);

因此, if语句永远不会触发。

错误:

            mysqli_stmt_bind_param($stmt, 's', $loginName);
            $result = mysqli_stmt_get_result($stmt);
            $resultCheck = mysqli_num_rows($result);

对:

            mysqli_stmt_bind_param($stmt, 's', $loginName);
            mysqli_stmt_execute($stmt);
            $result = mysqli_stmt_get_result($stmt);
            $resultCheck = mysqli_num_rows($result);

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM