Маленькая проблема с AJAX.Ошибка-функция выполняется - PullRequest
0 голосов
/ 06 февраля 2019

У меня небольшая проблема с ajax и mysql.Я хочу сохранить те же данные в базу данных через ajax.

Javascript:

$.ajax({
    type : "POST",
    url  : url_save,
    async : false,
    data : { item : nr, var : text },
    success: function(result_save){  
        if (result_save.includes('Error')) { 
          alert("!!!  Error  !!!");
        }
    },
    error: function(xhr, textStatus, errorThrown) {
        alert("!!!  Error  !!!");
    }
});

Мой PHP-файл выглядит так: PHP:

<?php
    require "config.inc.php";
$db = mysqli_connect(DBHOST, DBUSER, DBPASS, DBNAME) or die ('Error');
$db->set_charset("utf8");
$sql="INSERT INTO tbl (item, var) VALUES ('$_POST[item]','$_POST[var]')";
if (!mysqli_query($db,$sql))
{
    return 'Error';
    die();
}

mysql_close($db);
return 'i.O.';
?>

Сохраняет вбаза данных, но функция ошибки ajax выполняется каждый раз.Что не так?

1 Ответ

0 голосов
/ 06 февраля 2019

Несколько замечаний:

  • jcubic верен - вы не хотите использовать ключевое слово JS в качестве имени параметра.

  • catcon тоже правильно.Использование подготовленного оператора FAR предпочтительнее чтения переменной непосредственно в текст SQL.

  • Даже если mysqli_query () возвращает 0, вы все равно хотите выполнить mysql_close($ db), не так ли?

  • Вы также хотели бы знать конкретную ошибку, не так ли?

ПРЕДЛОЖЕНИЕ:

PHP:

<?php
  require "config.inc.php";
  $conn = new mysqli(DBHOST, DBUSER, DBPASS, DBNAME);
  if ($conn->connect_error) {
     die("Connection failed: " . $conn->connect_error);
  }
  $stmt = $conn->prepare("INSERT INTO tbl (item, var) VALUES (?, ?)");
  $stmt->bind_param("is", $_POST[item_id], $_POST[item_value]);
  if (!$stmt->execute()) {
    $result =  "Execute failed: (" . $stmt->errno . "): " . $stmt->error;
  }
  $stmt->close();
  $conn->close();
  return ($result) ? 'Success' : $result;
  ...

JS:

$.ajax({
    type : "POST",
    url  : url_save,
    async : false,
    data : { item_id: nr, item_value: text },
    success: function(result_save){  
        if (result_save === 'Success') {
          console.log('Insert was successful', nr, value);
        } else {
          alert('mySql Error: ', JSON.stringify(result_save));
        }
    },
    error: function(xhr, textStatus, errorThrown) {
        alert('XHR Exception: ' + textStatus + ', ' + JSON.stringify(errorThrown));
    }
});
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...