-1
我有下面的代碼顯示窗體中的mysql行信息,以便用戶可以編輯此信息,然後將其保存回數據庫:通過php更新MySQL行不工作(但沒有錯誤給出)
$companyeditsql = "SELECT * FROM Companys WHERE CompanyName = '" . $_POST['company'] . "'";
$companysresult=mysqli_query($conn, $companyeditsql);
$row = mysqli_fetch_array($companysresult)
?>
<form action="<?php echo $_SERVER["PHP_SELF"]; ?>" method="post">
Company Name: <input type="text" name="companyname" value="<?php echo $row['CompanyName']; ?>"><br>
E-mail: <input type="email" name="email" value="<?php echo $row['Email']; ?>"><br>
Number of Drivers: <input type="number" name="numdrivers" value="<?php echo $row['DriverCount']; ?>"><br>
Contact Name: <input type="text" name="contactname" value="<?php echo $row['ContactName']; ?>"><br>
Address: <input type="text" name="address" value="<?php echo $row['Address']; ?>"><br>
Phone Number: <input type="tel" name="phonenumber" value="<?php echo $row['PhoneNumber']; ?>"><br>
Password: <input type="password" name="password"><br>
Notes: <input type="text" name="notes" value="<?php echo $row['Notes']; ?>"><br>
<input type="hidden" name="companyid" value"<?php echo $row['ID']; ?>">
<input type="submit" name="addedittedcompany" value="Save Company">
</form>
這種運作良好,並顯示正確的信息,然後我有下面的代碼應該修改的數據並保存到數據庫:
}else if (isset($_POST['addedittedcompany'])){
$CompanyName = $_POST['companyname'];
$Email = $_POST['email'];
$NumberofDrivers = $_POST['numdrivers'];
$ContactName = $_POST['contactname'];
$Address = $_POST['address'];
$PhoneNumber = $_POST['phonenumber'];
$Password = $_POST['password'];
$Notes = $_POST['notes'];
$companyid = $_POST['companyid'];
$options = [
'cost' => 11,
];
$CompanyName = mysqli_real_escape_string($conn, $CompanyName);
$Email = mysqli_real_escape_string($conn, $Email);
$NumberofDrivers = mysqli_real_escape_string($conn, $NumberofDrivers);
$ContactName = mysqli_real_escape_string($conn, $ContactName);
$Address = mysqli_real_escape_string($conn, $Address);
$PhoneNumber = mysqli_real_escape_string($conn, $PhoneNumber);
$Notes = mysqli_real_escape_string($conn, $Notes);;
if (!empty($Password)){
$Password = mysqli_real_escape_string($conn, $Password);
$hash = password_hash($Password, PASSWORD_BCRYPT, $options);
$editcompanysql = "UPDATE Companys SET CompanyName='$CompanyName', Email='$Email', DriverCount='$NumberofDrivers', ContactName='$ContactName', Address='$Address', PhoneNumber='$PhoneNumber', Notes='$Notes', PassHash='$hash' WHERE ID = '$companyid'";
}else{
$editcompanysql = "UPDATE Companys SET CompanyName='$CompanyName', Email='$Email', DriverCount='$NumberofDrivers', ContactName='$ContactName', Address='$Address', PhoneNumber='$PhoneNumber', Notes='$Notes' WHERE ID = '$companyid'";
}
if (mysqli_query($conn,$editcompanysql)){
echo "Company Saved";
echo mysqli_error($conn);
}else{
echo "Failed to save Company";
echo mysqli_error($conn);
}
}
一旦運行,爲公司節省回聲被觸發但是當我檢查數據庫時,舊數據仍然在da中tabase即已更改的信息尚未保存。
沒有錯誤顯示,我看不出任何錯誤的PHP本身,有什麼想法?
謝謝
查看'$ _POST ['company']'和'name =「companyname」'。你沒有'name =「company」'。它不會丟失錯誤,因爲您可能沒有檢查它們。在打開'<?php'標籤後立即在文件頂部添加錯誤報告 'error_reporting(E_ALL); ini_set('display_errors',1);'看看它是否產生任何東西。 –
它已經有一段時間了,因爲我已經使用了mysql_ *,但如果我記得你的變量不需要文字引號。嘗試沒有單引號。 – rwhite35
@ Fred-ii- $ _POST ['company']已過去此頁面,並添加錯誤報告yeailds nothing –