这是我第一次这样做。当涉及到内部连接两个表时,我遇到了许多问题。我正在尝试做的是在用户登录其帐户时显示/回显表单字段中两个表中的详细信息。我可以成功地从一张表中回显出详细信息,当我尝试内部连接第二个表时,即使我有内容,网页实际上什么也没显示。
这是出现的错误
"致命错误:未捕获错误:调用/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
也很可疑,因为它有两个通过逗号连接的表。 但是,在这种情况下,我无法判断正确的逻辑是什么。