Я пишу скрипт прямо сейчас, чтобы обновить ввод данных MySQL через форму PHP. Я знаю, что в Stackoverflow есть много учебников, а также множество ответов. Моя проблема в том, что я получаю сообщение «Обновленные данные успешно», но данные не обновляются внутри моей базы данных. Может быть, кто-то найдет ошибку или скажет мне, что я сделал не так, и что я должен изменить. Здесь нужно код:Обновление записи MySQL через PHP-форму
Форма:
<?php
session_start();
if(empty($_SESSION)) // if the session not yet started
session_start();
if(!isset($_SESSION['email'])) { //if not yet logged in
header("Location: login.php");// send to login page
exit;
}
include 'header.php';
$get = "SELECT * FROM user email WHERE email = '".$_SESSION['email']."'";
$result_get = mysqli_query($connect, $get);
$_SESSION['data'] = mysqli_fetch_assoc($result_get);
?>
<form method="POST" action="update_profile.php" class="form-horizontal form-label-left">
<div class="form-group">
<label class="control-label col-md-3 col-sm-3 col-xs-12">Vorname:</label>
<div class="col-md-9 col-sm-9 col-xs-12">
<input type="text" name="firstname_parent" class="form-control" value="<?php echo $_SESSION['data']['firstname_parent']; ?>">
</div>
</div>
<button type="submit" name="update" value="update" class="btn btn-warning btn-lg btn-block">PROFIL VERVOLLSTÄNDIGEN</button>
</form>
update_profile.php:
<?php
session_start();
// Create connection credentials
$db_host = 'localhost';
$db_name = 'DBNAME';
$db_user = 'DBUSER';
$db_pass = 'DBPASS';
// Create mysqli object
$connect = new mysqli ($db_host, $db_user, $db_pass, $db_name);
// Error Handler
if ($connect->connect_error) {
printf ("Connection failed: %s\n", $connect->connect_error);
exit();
}
// Check if form is submitted
if (isset ($_POST['update'])) {
$update_firstname_parent = mysqli_real_escape_string ($connect, $_POST['firstname_parent']);
}
$sql = mysqli_query ($connect, "UPDATE `user` SET
firstname_parent='".$update_firstname_parent."' WHERE email = '".$_SESSION['email']."'";
if (mysqli_affected_rows($connect) == 0) //<--
{
die('Could not update data: ' . mysql_error());
} else {
echo "Updated data successfully\n";
}
mysql_close($connect);
?>
EDIT: Я изменил update_profile.php из-за некоторые комментарии здесь. Теперь я не получаю сообщение «Обновленные данные успешно», теперь я получаю только пустую страницу, и никакие данные не обновляются внутри базы данных.
Спасибо, Крис
Вы пробовали '... mysqli _affected_rows ($ sql) == 1 ... '? – 099
Помимо того, что ваш запрос на обновление неверен, кажется, что вы перевернули сообщения об успешном завершении/сбое. –
@ 099 спасибо за ваш совет, я попробовал его, но тот же эффект. Я получаю сообщение «Обновленные данные успешно», но никаких изменений внутри моей базы данных –