Недавно я создал веб-проект. Я хочу обновить mysql-запрос через ajax и PHP. Я создал код, но у меня были проблемы. Мой сервер использует PHP 5.2 *. Когда я нажимаю кнопку для обновления базы данных, иногда ничего не происходит, и иногда я получаю ошибку базы данных. Я не знаю точно, где проблема, потому что это первый раз, когда я работаю в back-end dev, поэтому любая помощь оценивается!Обновление базы данных MySQL с помощью PHP и AJAX
--------------------HOME.JS--------------------
$('#update_profile').click(function(e) {
e.preventDefault();
$.ajax({
type: "POST",
url: 'lib/preferences.php',
data: {
email: $('#pref-changes input[name="email"]').val(),
pass: $('#pref-changes input[name="pass"]').val(),
username, $('#pref-changes input[name="username"]').val(),
},
dataType: "html",
success: function(data){
window.location.href = data;
}
});
});
--------------------HOME.HTML--------------------
<form class="pref-changes" id="pref-changes">
<div class="pref_avatar">
<div class="avatar_change">Change</div>
</div>
<div style="margin-top: 10px;">
<label>Change Username</label>
<input name="username" class="pref_inp" placeholder="GeorgeGkas" type="text">
</div>
<div class="lbl">
<label>Change Email</label>
<input name="email" class="pref_inp" placeholder="[email protected]" type="email">
</div>
<div class="lbl">
<label>Change Password</label>
<input name="pass" class="pref_inp" placeholder="Password" type="password">
</div>
<div class="update_btn">
<button type="submit" id="update_profile" name="update_profile">Update</button>
</div>
</form>
--------------------PREFERENCES.PHP--------------------
<?php
session_start();
define("DB_HOST", 'mysql6.000webhost.com');
define("DB_USER", '');
define("DB_PASSWORD", '');
define("DB_DATABSE", '');
$UserEmail = $_SESSION['login'];
$conn = mysql_connect(DB_HOST, DB_USER, DB_PASSWORD);
mysql_select_db(DB_DATABSE, $conn);
if ($email != "") {
$sql = "UPDATE Users SET UserEmail='".$email."' WHERE UserEmail=".$UserEmail."";
mysql_query($conn, $sql);
}
if ($pass != "") {
$sql = "UPDATE Users SET UserPass='".$pass."' WHERE UserEmail=".$UserEmail."";
mysql_query($conn, $sql);
}
if ($username != "") {
$sql = "UPDATE Users SET UserName='".$username."' WHERE UserEmail=".$UserEmail."";
mysql_query($conn, $sql);
}
$host = $_SERVER['HTTP_HOST'];
$link = "http://$host/home.php";
echo $link;
?>
проходит значение через Ajax, но я не знаю, если я делаю это правильно. См. Данные в моем вызове ajax. –
Значения POST ссылаются внутри переменной $ _POST. Измените свой код, чтобы использовать то, что предложил Рикардо. Это также поможет, если вы разместите сообщение об ошибке базы данных. Также ... ваш код также не защищен вообще, используйте mysql_real_escape_string, чтобы сделать вашу базу данных безопасной. – Clay
@ Clayton это всего лишь проект. В последнее время защищенная часть будет обрабатываться. Что касается PHP, я не знал, что мне нужно передавать значения через POST. Есть ли другая часть моего кода, которая нуждается в исправлении? –