我目前正試圖通過PHP表單更新數據庫。首先,我從表單中的數據庫中獲取所有信息,然後嘗試更新該表單中的詳細信息以反映數據庫。數據庫不會更新 - 通過MySQLi的PHP表單
我可以成功設法從表單中獲取數據庫中的所有詳細信息,但不幸的是並未因此而更新。
這裏是一個檢索數據庫的信息的代碼,其中工程100%的表單中:
include_once 'db_connect.php';
if($result->num_rows > 0) {
while($row = $result->fetch_assoc()) {
echo "<form id=updateVehicle action='' method=post";
echo "<div id='vehicleDescription'>";
echo "<div>";
echo "<label for=vin>VIN</label>";
echo "<input type=text id=vin name=vin minlength=17 maxlength=17 placeholder=e.g. BMW1234567890ABCD value=" . $row['vin'] . " />";
echo "<br/>";
echo "</div>";
echo "<div>";
echo "<label for=make>Make</label>";
echo "<input type=text id=make name=make minlength=3 maxlength=13 placeholder=e.g. BMW value=" . $row['make'] . " />";
echo "<br/>";
echo "</div>";
echo "<div>";
echo "<label for=model>Model</label>";
echo "<input type=text id=model name=model minlength=2 maxlength=15 placeholder=e.g. 530D value=" . $row['model'] . " />";
echo "<br/>";
echo "</div>";
echo "<div>";
echo "<input type=text name=id value=" . $row['id'] . " />";
echo "</div>";
echo "<span><?php echo $errorMessage;?></span>";
echo "</div> <!--End of vehicleDescription div-->";
echo "<input type='submit' class='submit' value='Update Ads' />";
echo "</form>";
}
}
的動作是空的,因爲它提交給自己,我試圖用「回聲用htmlspecialchars( $ _SERVER [ 「PHP_SELF」]);」但它不起作用,所以我把它排除了。
這裏是處理不工作的更新代碼:
if(isset($_POST['vin'], $_POST['make'], $_POST['model'])) {
$vin = filter_input(INPUT_POST, 'vin', FILTER_SANITIZE_STRING);
$make = filter_input(INPUT_POST, 'make', FILTER_SANITIZE_STRING);
$model = filter_input(INPUT_POST, 'model', FILTER_SANITIZE_STRING);
$id = filter_input(INPUT_POST, 'id', FILTER_SANITIZE_NUMBER_INT);
if($insert_stmt = $mysqli->prepare("UPDATE vehicles SET (vin=?, make=?, model=? WHERE id=? ")) {
$insert_stmt->bind_param("sssi", $vin, $make, $model, $id);
if(!$insert_stmt->execute()) {
header('Location: ../error.php?err=Registration failure: UPDATE');
$mysqli->close();
}
}
header('Location: ../includes/register_success.php');
$mysqli->close();
}
對於一些未知的原因對我來說,它根本不會更新數據庫。 'db_connect.php'在我用於其他數據庫查詢時使用100%。
如果您能指出正確的方向,我將非常感謝您的幫助。
謝謝!
你得到任何錯誤。在你的error_log中?如果你在清理它們之後嘗試echo $ vin $ make $ model $ id',會發生什麼? – Qirel
丟失括號? – Drew
嗨Qirel,每當我嘗試激活錯誤日誌時,我將以「致命錯誤:在'...'中找不到類'mysqli'。但是,如果錯誤報告被關閉,則代碼將按照它應該執行的方式執行,除非代碼不起作用上面。另外,當我回應這些變量時,什麼也沒有發生推測變量沒有設置?謝謝 – CodeX