PHP代码在完成查询后执行else语句


php code executes else statement after completing query

如果"insert"查询成功,我的android studio控制台应该收到"success"。这只有在"hub_code"是新的情况下才会成功,否则它不会插入。然而,如果我注册不同的hub_code查询注册用户,但它执行"codexist"回显。此外,create table查询与这个问题无关。我的android代码也无关紧要,因为我只想知道为什么主机只接收"codexist"。下面是我的php代码。

<?php 
     $dbconn=mysqli_connect("localhost","root","") or trigger_error(mysql_error(), E_USER_ERROR);
     mysqli_select_db($dbconn,"mydatabase"); 
    $username = $_POST["un"];
    $password = $_POST["pw"];
    $f_name = $_POST["fn"];
    $l_name = $_POST["ln"];
    $hub_code = $_POST["hc"];
    $type = $_POST["type"];


     if (!empty(($username)&&($password)&&($f_name)&&($l_name)&&($hub_code))) 
     {  
         $query = "SELECT username FROM tbl_user WHERE hub_code = '".$hub_code."'";
         $result = mysqli_query($dbconn, $query); 
         if (mysqli_num_rows($result) == 0)  
         {        
              $query1 = "INSERT INTO tbl_user(username, password, f_name, l_name, hub_code, type) VALUES('$username', '$password', '$f_name', '$l_name', '$hub_code','LECTURER')";
              $sql1=mysqli_query($dbconn,$query1); 
              $query2 = "CREATE TABLE $hub_code (
                              ID int(11) AUTO_INCREMENT,
                              monday int(1) NOT NULL,
                              tuesday int(1) NOT NULL,
                              wednesday int(1) NOT NULL,
                              thursday int(1) NOT NULL,
                              friday int(1) NOT NULL,
                              saturday int(1) NOT NULL,
                              sunday int(1) NOT NULL,
                              weekcounter int(2) NOT NULL,
                              assdate DATE NOT NULL )";
               $result2 = mysqli_query($dbconn, $query2);
                if(trim($sql1) != "")
                {
                    echo "Success";
                }
                else
                {
                    echo "Failure";
                }
         }
         else 
         {
            echo "codexit";
         }
    }

     else
     { 
        echo  "One or both of the fields are empty ";
     }
     mysqli_close($dbconn); ?>

问题是,即使它注册,当hub_code不存在时,它也会回显"codexist",这意味着hub_code已经存在。

  1. 在你的mysql服务器上运行你的mysql查询(不是在php中),检查它的行为应该

  2. 回显mysqli_num_rows($result)行。这也应该有助于确定返回的计数。

  3. 回叫你的$_POST来检查它是否被正确发布。

试错是调试的唯一方法