2015-09-27 89 views
0

我一直在试图让这个脚本完成一段时间了 - 即时通讯类型的新的PHP和MySQL,但我一直试图让这个检查数据库的用户名,然后如果用户名存在 - 停止检查数据库,如果它不存在将其添加到数据库。如果变量在db然后停止 - 如果变量不 - 然后输入它

这里是我的代码:

    //input from application 
        $test = "wheelsmanx"; 
        // Create connection 
        $conn = new mysqli($servername, $username, $password, $dbname); 
        // Check connection 
        if ($conn->connect_error) { 
         die("Connection failed: " . $conn->connect_error); 
        } 

        $sql = "SELECT mainusername FROM CCCpro_test"; 
        $result = $conn->query($sql); 

        if ($result->num_rows > 0) { 

         while($row = $result->fetch_assoc()) { 
          if ($row["mainusername"] === $test) { 
           echo "User Name Already In Use."; 


          }if($row["mainusername"] !== $test){ 
           echo "this statement"; 

          [code that inserts into db i can do this part myself] 

          } 

          } 
         $conn->close(); 

        } else { 
         echo "0 results"; 
        } 

        $conn->close(); 
+0

输出:用户名称已经在使用。这个声明 注:我知道为什么它这样做 - 我只是不知道如何阻止它通过所有的数据库出去做出口 – wheelsmanx

+0

你应该使用'if(condition){//错误消息exit; } else {//插入db}' – aldrin27

回答

1

与您的代码的问题是,你做的新名称的INSERTif声明已经确认用户的存在已经内。另外,我认为你通过选择所有用户搞砸了你的SELECT声明。

查看INSERT ON DUPLICATE以获取更好的方法,或者修改您的代码,如下所示。

   $sql = "SELECT mainusername FROM CCCpro_test WHERE mainusername = $test"; 
       $result = $conn->query($sql); 

       if ($result->num_rows > 0) { 
        echo "User Name Already In Use."; 
       } 
       else{ //no rows selected therefore the user doesn't exist 
         [code that inserts into db i can do this part myself] 
       } 

       $conn->close(); 

请仔细阅读我有地方去,所以我是懒惰,所以我没有不更新它的$test变量绑定$test绑定变量,因此不要复制并粘贴此代码。请阅读this post关于PDO和变量绑定以防止SQL注入。

0

这里是我的全部工作代码,如果有人需要它 - 它使用POST方法 - 从HTML表单....万一有人需要它劈死件别的东西

好,大家好我欣赏所有的帮助:D,但我已经找到了答案或绕过它我想 - 我想它一整天,我怎么能使它工作,我想出了这

    $servername = "127.0.0.1"; 
        $username = "TESTUSER"; 
        $password = "TESTPASS"; 
        $dbname = "TESTDB"; 

        $testusername = $_POST['mainusername']; 
        $testpassword = $_POST['mainpassword']; 

        //input from application 
        $test = $_POST['mainusername']; 
        $test2 = "0"; 
        //Count switch 
        $countswitch = "0"; 
        // Create connection 
        $conn = new mysqli($servername, $username, $password, $dbname); 
        // Check connection 
        if ($conn->connect_error) { 
         die("Connection failed: " . $conn->connect_error); 
        } 
        $sql1 = "INSERT INTO CCCpro_test (mainusername, mainpassword) VALUES ('$testusername','$testpassword')"; 
        $sql = "SELECT mainusername FROM CCCpro_test"; 
        $result = $conn->query($sql); 

        if ($result->num_rows > 0) { 

         while($row = $result->fetch_assoc()) { 
          if ($row["mainusername"] === $test) { 
           echo "Im Sorry Username Already In Use"; 
           $countswitch ++; 
          } 
          } 

          if($countswitch == $test2){ 
           echo "User Name Registered"; 

           $db_handle = mysql_connect($servername, $username, $password); 
           $db_found = mysql_select_db($dbname, $db_handle); 

           if ($db_found) { 

           $result1 = mysql_query($sql1); 

           mysql_close($db_handle); 

           } 
          } 
          if ($countswitch == 3){ 
           echo "this"; 
          } 
          } else { 
         echo "0 results"; 
        } 

        $conn->close(); 
相关问题