javascript пост в php для записи вставки mysql

Я прочитал много уроков по этому вопросу, но просто не могу заставить это работать — у меня есть следующий файл PHP на сервере:

<?php
$host_name  = "";
$database   = "";
$user_name  = "";
$password   = "";

$connect = mysqli_connect($host_name, $user_name, $password, $database);

$user = $_POST['user'];
$sports = $_POST['sports'];
$location = $_POST['location'];

if (mysqli_connect_errno())
{
echo "Failed to connect to MySQL: " . mysqli_connect_error();
}

$sql = "UPDATE `userActivityLocation` WHERE user='$user' SET sports='$sports', location='$location'";
$result=mysql_query($sql);
?>

Я пробовал несколько методов безрезультатно, не уверен, что я делаю неправильно! Любой совет будет принята с благодарностью, спасибо!

РЕДАКТИРОВАТЬ:
Я попробовал следующее по предложению morgunder, но до сих пор не вижу ни одной записи, созданной в базе данных.

Вот слушатель щелчка для кнопки отправки:

$('#register').click(function () {
console.log("Ready! Getting the user details.");

username = document.getElementById('login').value;
password = document.getElementById('password').value;
email = document.getElementById('email').value;
window.localStorage.setItem("user", username);
console.log("Username: ", username);
console.log("Password: ", password);
console.log("E-Mail: ", email);

var params, connection;

params = {
login: username,
password: password,
email: email
};

//console.log("Params: ", params);
console.log("Creating new user");
QB.users.create(params, function (err, result) {
console.log("Result: ", result.toString());
// callback function
alert(username.toString());
var usernamePost = username.toString();
$.post("http://www.baseurl.co.uk/API/users.php", { user: usernamePost }, function (data) {
console.log(data);
console.log("HERE");
});

window.location = "sportsSelector.html"});
});

-2

Решение

Вы сказали, что хотите вставить запись, но вы используете UPDATE Команда SQL Вот почему запись не создается.

Попробуй это:

$sql = "INSERT INTO `userActivityLocation`(user,sports,location) VALUES ('$user', '$sports', '$location')";

Также есть что рассмотреть:

  • JQuery определенно проще, чем обычный старый объект xhr. И это решает кросс-браузерные проблемы для вас!
  • Если API находится на другом сервере, чем клиент, вы должны установить какой-либо фильтр перекрестного происхождения на сайте сервера (вы можете сделать это в .htaccess как здесь
  • «Склеивание» SQL из строк небезопасно из-за возможного внедрения SQL. Подготовленные заявления являются ответом на эту проблему
1

Другие решения

РЕШИТЬ! С помощью вас, милые люди, но окончательный ответ был совершенно отдельным, менее очевидным вопросом. Событие было запущено, пост начинался, код на стороне сервера был хорош, JavaScript был исправлен после исправления, но затем он был грубо прерван вызовом window.location! Это то, что нарушало сделку.

0

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector