外键不能使用mysqli查询

时间:2016-03-05 09:12:40

标签: php mysqli

请帮我解决这个问题。在使用此代码设置外键之前,它工作正常。但是在添加外键后,它再也无法正常工作了。我有两个表,我在数据库中创建了关系,并且关系工作正常但是在创建关系后数据没有再次插入到表中。这是代码。我使用列电子邮件来创建两个表之间的关系。

 <?php
  session_start();
  if (isset($_POST['submit'])) {
     $pin = htmlspecialchars($_POST['pin']);
     $surName = htmlspecialchars($_POST['surName']);
     $firstName = htmlspecialchars($_POST['firstName']);
     $otherName = htmlspecialchars($_POST['otherName']);
     $email = htmlspecialchars($_POST['email']);
     $passWord = md5($_POST['passWord']);
     $confirmPass = md5($_POST['confirmPass']);

     if ((empty($pin && $surName && $firstName && $otherName && $email && $passWord) == false) && ($passWord == $confirmPass) && (filter_var($email, FILTER_VALIDATE_EMAIL))) 
{
     include "dbconnect.php";
     $sql = "SELECT * FROM `sono` WHERE `pin`='$pin'";   
     $check = mysqli_query($dbconnect, $sql);
     $numrow = mysqli_num_rows ($check);
     if ($numrow == 1)
    {
      $rows=mysqli_fetch_assoc($check);
      $Email = $rows['eMail'];
      if ($Email == false)
     {
         $query = "SELECT * FROM `sono` WHERE `eMail`='$email'";
         $check = mysqli_query($dbconnect, $query);
         $numrow = mysqli_num_rows($check);
         if ($numrow == 0)
         {
             $query = "UPDATE `sono` SET `surName`='$surName', `firstName`='$firstName', `otherName`='$otherName', `eMail`='$email', `passWord`='$passWord', `confirmPass`='$confirmPass' WHERE `pin`='$pin'";
             $query = "SELECT `id` as idmax FROM `sono`";
             $result = mysqli_query($dbconnect, $query) or die (mysqli_error($dbconnect));
             $rowa = mysqli_fetch_array($result);
             $rw = $rowa['idmax'];
             $rwo = $rw+1;
             $rwo = str_pad($rwo,4,'0',STR_PAD_LEFT);
             $sql = "UPDATE `sono` SET `id`='$rwo' WHERE `pin`='$pin'";
             $result = mysqli_query($dbconnect, $sql);
             $_SESSION['surName'] = $surName;
             $_SESSION['firstName'] = $firstName;
             $_SESSION['otherName'] = $otherName;
             $_SESSION['email'] = $email;
             $_SESSION['passWord'] = $passWord;

             $msg= "<p style='color: green; font-weight: bold; padding-left: 0px'>Registration successful,<a href='passport.php'> >>>Click here to proceed<<<</a></p>";
             } else
             $msg= "<p style = 'color: red; padding-left: 0'>Email already used, use another valid email to register</p>";
             } else
             $msg= "<p style = 'color: red; padding-left: 0'>The pin has been used</p>";
             } else
             $msg= "<p style = 'color: red; padding-left: 0'>The pin enter does not exist</p>";
             } else 
             $msg= "<p style = 'color: red; padding-left: 0'>Please Enter Your Names, Pin, Valid Email, Password and confirm your password to Start Registration</p>";
     }
     ?> 

1 个答案:

答案 0 :(得分:0)

下面的代码总是运行select查询,因为你要覆盖$ query变量

  $query = "UPDATE `sono` SET `surName`='$surName', `firstName`='$firstName', `otherName`='$otherName', `eMail`='$email', `passWord`='$passWord', `confirmPass`='$confirmPass' WHERE `pin`='$pin'";
  $query = "SELECT `id` as idmax FROM `sono`";
  $result = mysqli_query($dbconnect, $query) or die (mysqli_error($dbconnect));
  $rowa = mysqli_fetch_array($result);

应该是

 $query = "UPDATE `sono` SET `surName`='$surName', `firstName`='$firstName', `otherName`='$otherName', `eMail`='$email', `passWord`='$passWord', `confirmPass`='$confirmPass' WHERE `pin`='$pin'";
 $result = mysqli_query($dbconnect, $query) or die (mysqli_error($dbconnect));

 $query = "SELECT `id` as idmax FROM `sono`";
 $result = mysqli_query($dbconnect, $query) or die (mysqli_error($dbconnect));
 $rowa = mysqli_fetch_array($result);

如果我们能够详细了解您的问题,那就太好了。