首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何检查数据库中已存在的值?

问如何检查数据库中已存在的值?
EN

Stack Overflow用户
提问于 2013-06-17 10:09:36
回答 2查看 1K关注 0票数 0

我目前正在为我的网站建立一个注册脚本。我是PHP-mySQL交互的新手。不管怎样,这是我到目前为止得到的代码。问题是,我添加了更多的代码来检查用户名是否已经存在于数据库中,在表单提交之后,它被踢到store.viddir.com/join/signup.php而不是store.viddir.com/login,就像我有它一样。有没有可以帮助新手的专业人士?非常感谢

代码语言:javascript
复制
<?php
      $submitted = $_POST["submitted"];
      if($submitted == 'yes') {

      $firstName = $_POST["firstName"];
      $lastName = $_POST["lastName"];
      $userName = $_POST["userName"];
      $password = $_POST["password"];
      $confirmPassword = $_POST["confirmPassword"];
      $eMail = $_POST["eMail"];

      // Kill script if input fields are blank
      if ($firstName == '' or $lastName == '' or $userName == '' or $password == '' or $confirmPassword == '' or $eMail == '')
      {
        die();
      }

      // Check if passwords match
      if ($password != $confirmPassword)
      {
        die();
      }

      // Check if password is appropriat length
      $passwordLength = strlen($password);
      if ($passwordLength < 7 or $passwordLength >30) {
        die();
      }

      /////////////////////////
      // Connect to database //
      /////////////////////////

      $sqlserver = "localhost";
      $sqluser = "XXXX";
      $sqlpassword = "XXXXXX";

      mysql_connect($sqlserver, $sqluser, $sqlpassword) or die(mysql_error());

      mysql_select_db("store");

      // Check database if username already exists  
      $newUserName = $userName;
      $checkUserName = mysql_query("SELECT userName FROM userInfo WHERE userName = '$newUserName'");
      if ($checkUserName) {
        die();
        }

      //////////////////////////
      // Insert into database //
      //////////////////////////

      // Signup time in Unix Epoch
      $time = time();

      // Human readable date
      $date = date("F jS, Y  g:i:s A");

      $sql = "INSERT into userInfo (firstName, lastName, userName, password, eMail, time, date) VALUES ('$firstName', '$lastName', '$userName', '$password', '$eMail', '$time', '$date')";
        //$sqlserver = "localhost";
        //$sqluser = "XXXX";
        //$sqlpassword = "XXXXXX";


        //mysql_connect($sqlserver, $sqluser, $sqlpassword) or die(mysql_error());

        //mysql_select_db("store");

      mysql_query($sql) or die(mysql_error());

      mysql_close();

      header("Location: http://store.viddir.com/login");
      exit;
      }
    ?>
EN

回答 2

Stack Overflow用户

发布于 2013-06-17 10:11:50

参见mysql_num_rows。您还应该考虑使用PDO或MySQLi。

http://php.net/manual/en/function.mysql-num-rows.php

代码语言:javascript
复制
if (mysql_num_rows($query) > 0) {
    echo "user already exists";
}
票数 0
EN

Stack Overflow用户

发布于 2013-06-17 10:14:21

您应该在mysql查询中进行计数,然后检查结果是否不等于0。

示例:

代码语言:javascript
复制
// Check database if username already exists  
  $newUserName = $userName;
  $checkUserName = mysql_query("SELECT COUNT(userName) FROM userInfo WHERE userName = '$newUserName'");
  if ( mysql_result($checkUserName, 0, 0) != 0 ) {
    die();
    }
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/17139541

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档