请帮我解决这个问题。在使用此代码设置外键之前,它工作正常。但是在添加外键后,它再也无法正常工作了。我有两个表,我在数据库中创建了关系,并且关系工作正常但是在创建关系后数据没有再次插入到表中。这是代码。我使用列电子邮件来创建两个表之间的关系。
<?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>";
}
?>
答案 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);
如果我们能够详细了解您的问题,那就太好了。