MYSQL - 内部连接问题


MYSQL - Inner Join problems

这是我第一次这样做。当涉及到内部连接两个表时,我遇到了许多问题。我正在尝试做的是在用户登录其帐户时显示/回显表单字段中两个表中的详细信息。我可以成功地从一张表中回显出详细信息,当我尝试内部连接第二个表时,即使我有内容,网页实际上什么也没显示。

这是出现的错误

"致命错误:未捕获错误:调用/Applications/MAMP/htdocs/PhpProject2/customer/Cus_Account.php:24 中

布尔值上的成员函数 fetch_array() 堆栈跟踪:#0 {main} 在第 24 行的/Applications/MAMP/htdocs/PhpProject2/customer/Cus_Account.php 中抛出

"

第 24 行是:

 $row = $results->fetch_array(MYSQLI_BOTH);

.PHP

  $results = $dbc->query("SELECT Cus_Register.Cus_Email FROM Cus_Register INNER JOIN
   Cus_acc_details ON Cus_Register.Cus_Email = Cus_acc_details.Cus_Email WHERE
  Cus_acc_details WHERE Cus_Email='$user'");
 $row = $results->fetch_array(MYSQLI_BOTH);
 session_start();
 $_SESSION['Cus_Email'] = $row['Cus_Email'];
?>
<!-- update database-->
<?php
 if(isset($_POST['Update'])){
$UpdateFname =  $_POST['fname'];
$UpdateLname =  $_POST['Lname'];
$UpdateEmail =  $_POST['email'];
$UpdatePhone =  $_POST['phone'];
}
$sql = $dbc->query("UPDATE Cus_Register,Cus_acc_details SET CUS_Fname = '      $UpdateFname', CUS_Lname = ' $UpdateLname', CUS_Email = ' $UpdateEmail', Cus_Phone = ' $UpdatePhone' WHERE CUS_Email = ")
?>

.HTML

   <section class="container">
    <form id="myform " class="Form" method="post" action="Cus_Account.php?c_id=<?php echo $c_id ?>" accept-charset="utf-8">
        <!--                    <div id="first">-->
        <input type="text" id="fname" name="fname"  value="<?php echo $_SESSION['CUS_Fname']; ?>" required> 
        <input type="text" id="lname" name="lname"  value="<?php echo $_SESSION['CUS_Lname']; ?>" required>
        <input type="text" id="email" name="email" value="<?php echo $_SESSION['Cus_Email']; ?>" required>
        <input type="number" id="phone" name="phone" value="<?php echo $_SESSION['CUS_Phone']; ?>"  required>
        <input type="submit" name="Update" value="Update">
        <br>
    </form>

您的选择语句是:

SELECT Cus_Register.Cus_Email
FROM Cus_Register INNER JOIN
     Cus_acc_details
     ON Cus_Register.Cus_Email = Cus_acc_details.Cus_Email
WHERE  Cus_acc_details WHERE Cus_Email='$user';

这不是有效的 SQL。 我怀疑你打算这样做:

SELECT r.Cus_Email
FROM Cus_Register r INNER JOIN
     Cus_acc_details d
     ON r.Cus_Email = d.Cus_Email
WHERE r.Cus_Email = '$user';

单个SELECT只有一个WHERE子句。

您的UPDATE也很可疑,因为它有两个通过逗号连接的表。 但是,在这种情况下,我无法判断正确的逻辑是什么。